# xarray.core.accessor_str.StringAccessor.count

#### StringAccessor.count(pat, flags=0, case=None)[[source]](https://github.com/pydata/xarray/blob/main/xarray/core/accessor_str.py#L1090-L1166)

Count occurrences of pattern in each string of the array.

This function is used to count the number of times a particular regex
pattern is repeated in each of the string elements of the
[`DataArray`](xarray.DataArray.html.md#xarray.DataArray).

The pattern pat can either be a single `str` or re.Pattern or
array-like of `str` or re.Pattern. If array-like, it is broadcast
against the array and applied elementwise.

* **Parameters:**
  * **pat** ([`str`](https://docs.python.org/3/builtins/stdtypes.html#str) or [`re.Pattern`](https://docs.python.org/3/library/re.html#re.Pattern) or [array-like](https://numpy.org/doc/stable/glossary.html#term-array_like) of [`str`](https://docs.python.org/3/builtins/stdtypes.html#str) or [`re.Pattern`](https://docs.python.org/3/library/re.html#re.Pattern)) – A string containing a regular expression or a compiled regular
    expression object. If array-like, it is broadcast.
  * **flags** ([`int`](https://docs.python.org/3/builtins/functions.html#int), *default*: `0`) – Flags to pass through to the re module, e.g. re.IGNORECASE.
    see [compilation-flags](https://docs.python.org/3/howto/regex.html#compilation-flags).
    `0` means no flags. Flags can be combined with the bitwise or operator `|`.
    Cannot be set if pat is a compiled regex.
  * **case** ([`bool`](https://docs.python.org/3/builtins/functions.html#bool), *default*: [`True`](https://docs.python.org/3/builtins/constants.html#True)) – If True, case sensitive.
    Cannot be set if pat is a compiled regex.
    Equivalent to setting the re.IGNORECASE flag.
* **Returns:**
  **counts** ([array](https://numpy.org/doc/stable/glossary.html#term-array) of [`int`](https://docs.python.org/3/builtins/functions.html#int))

### Examples

<div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesShowIframe('a517ff2b-8112-44c1-a7f5-32203029cb81','8486f246-2b61-4a3f-8db3-0369bfc0a199','0083ea7c-e78b-400a-a8eb-865f823ed1be','../lite/tree/../notebooks/index.html?path=f104355a_aa36_46ea_87bb_2bcf932d6157.ipynb','None')">Try it in your browser!</button></div>
```pycon
>>> da = xr.DataArray(["jjklmn", "opjjqrs", "t-JJ99vwx"], dims="x")
>>> da
<xarray.DataArray (x: 3)> Size: 108B
array(['jjklmn', 'opjjqrs', 't-JJ99vwx'], dtype='<U9')
Dimensions without coordinates: x
```

Using a string:
>>> da.str.count(“jj”)
<xarray.DataArray (x: 3)> Size: 24B
array([1, 1, 0])
Dimensions without coordinates: x

Enable case-insensitive matching by setting case to false:
>>> counts = da.str.count(“jj”, case=False)
>>> counts
<xarray.DataArray (x: 3)> Size: 24B
array([1, 1, 1])
Dimensions without coordinates: x

Using regex:
>>> pat = “JJ[0-9]{2}[a-z]{3}”
>>> counts = da.str.count(pat)
>>> counts
<xarray.DataArray (x: 3)> Size: 24B
array([0, 0, 1])
Dimensions without coordinates: x

Using an array of strings (the pattern will be broadcast against the array):

```pycon
>>> pat = xr.DataArray(["jj", "JJ"], dims="y")
>>> counts = da.str.count(pat)
>>> counts
<xarray.DataArray (x: 3, y: 2)> Size: 48B
array([[1, 0],
       [1, 0],
       [0, 1]])
Dimensions without coordinates: x, y
```

<div id="0083ea7c-e78b-400a-a8eb-865f823ed1be" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('a517ff2b-8112-44c1-a7f5-32203029cb81','0083ea7c-e78b-400a-a8eb-865f823ed1be')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('a517ff2b-8112-44c1-a7f5-32203029cb81','0083ea7c-e78b-400a-a8eb-865f823ed1be')">Open In Tab</button></div><div id="8486f246-2b61-4a3f-8db3-0369bfc0a199" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
