MATLAB Function Reference |

**Syntax**

start = regexp(str,expr) [start,finish] = regexp(str,expr) [start,finish,tokens] = regexp(str,expr) [...] = regexp(str,expr,'once')

**Description**

```
start = regexp(str,expr)
```

returns a row vector, `start`

, containing the indices of the substrings in `str`

that match the regular expression string, `expr`

.

When either `str`

or `expr`

is a cell array of strings, `regexp`

returns an `m`

-by-`n`

cell array of row vectors of indices, where `m`

is the the number of strings in `str`

and `n`

is the number of regular expression patterns in `expr`

.

```
[start,finish] = regexp(str,expr)
```

returns an additional row vector `finish`

, that contains the indices of the last character of the corresponding substrings in `start`

.

```
[start,finish,tokens] = regexp(str,expr)
```

returns a `1`

-by-`n`

cell array, `tokens`

, of beginining and ending indices of tokens within the corresponding substrings in `start`

and `finish`

. Tokens are denoted by parentheses in the expression, `expr`

.

```
[...] = regexp(str,expr,'once')
```

finds just the first match. (By default, `regexp`

returns all matches.) If no matches are found, then all return values are empty.

**Remarks**

See Regular Expressions, in the MATLAB documentation, for a listing of all regular expression metacharacters supported by MATLAB.

`regexp`

does not support international character sets.

**Example 1**

Return a row vector of indices that match words that start with `c`

, end with `t`

, and contain one or more vowels between them:

**Example 2**

Return a cell array of row vectors of indices that match capital letters and whitespaces in the cell array of strings, `str`

:

Capital letters, '`[A-Z]`

', were found at these `str`

indices:

Space characters, '`\s`

', were found at these `str`

indices:

**Example 3**

Return the starting and ending indices of words containing the letter `x`

:

**Example 4**

Return the starting and ending indices of substrings contained by the letter `s`

. Also return the starting and ending indices of the token defined within the parentheses:

str = 'six sides of a hexagon'; [s,f,t] = regexp(str, 's(\w*)s') s = 5 f = 9 t = [1x2 double] t{:} ans = 6 8

**See Also**

`regexpi`

, `regexprep`

, `strfind`

, `findstr`

, `strmatch`

, `strcmp`

, `strcmpi`

, `strncmp`

, `strncmpi`

refresh | regexpi |