# xarray.core.accessor_str.StringAccessor.find

#### StringAccessor.find(sub, start=0, end=None, side='left')[[source]](https://github.com/pydata/xarray/blob/main/xarray/core/accessor_str.py#L1727-L1770)

Return lowest or highest indexes in each strings in the array
where the substring is fully contained between [start:end].
Return -1 on failure.

If start, end, or ‘sub\` is array-like, they are broadcast
against the array and applied elementwise.

* **Parameters:**
  * **sub** ([`str`](https://docs.python.org/3/builtins/stdtypes.html#str) or [array-like](https://numpy.org/doc/stable/glossary.html#term-array_like) of [`str`](https://docs.python.org/3/builtins/stdtypes.html#str)) – Substring being searched.
    If array-like, it is broadcast.
  * **start** ([`int`](https://docs.python.org/3/builtins/functions.html#int) or [array-like](https://numpy.org/doc/stable/glossary.html#term-array_like) of [`int`](https://docs.python.org/3/builtins/functions.html#int)) – Left edge index.
    If array-like, it is broadcast.
  * **end** ([`int`](https://docs.python.org/3/builtins/functions.html#int) or [array-like](https://numpy.org/doc/stable/glossary.html#term-array_like) of [`int`](https://docs.python.org/3/builtins/functions.html#int)) – Right edge index.
    If array-like, it is broadcast.
  * **side** (`{"left", "right"}`, *default*: `"left"`) – Starting side for search.
* **Returns:**
  **found** ([array](https://numpy.org/doc/stable/glossary.html#term-array) of [`int`](https://docs.python.org/3/builtins/functions.html#int))
