strfind

Строки поиска в других строках

Синтаксис

k = strfind(str,pattern)
k = strfind(str,pattern,'ForceCellOutput',cellOutput)

Описание

пример

k = strfind(str,pattern) поисковые запросы str для случаев pattern. Вывод, k, указывает на начальное значение индекса каждого вхождения pattern в str. Если pattern не найден, то strfind возвращает пустой массив, []. Функция strfind выполняет поиск с учетом регистра.

  • Если str является вектором символов или скаляром строки, то strfind возвращает вектор типа double.

  • Если str является массивом ячеек из символьных векторов или массивом строк, то strfind возвращает массив ячеек векторов типа double.

пример

k = strfind(str,pattern,'ForceCellOutput',cellOutput) strfind сил, чтобы возвратить k как массив ячеек, когда cellOutput верен, даже когда str является вектором символов.

Примеры

свернуть все

Найдите начальные значения индекса для случаев шаблонов в векторе символов.

Во-первых, создайте вектор символов.

str = 'Find the starting indices of a pattern in a character vector';

Найдите шаблон in.

k = strfind(str,'in')
k = 1×4

     2    15    19    40

Существует четыре экземпляра шаблона в str.

Найдите шаблон In.

k = strfind(str,'In')
k =

     []

Поскольку strfind является чувствительным к регистру, шаблон не найден. k является пустым массивом.

Найдите пробелы в str.

k = strfind(str,' ')
k = 1×10

     5     9    18    26    29    31    39    42    44    54

В str существует десять пробелов.

Найдите начальные значения индекса для случаев шаблона в массиве ячеек из символьных векторов.

Создайте массив ячеек из символьных векторов.

str = {'How much wood would a woodchuck chuck';
       'if a woodchuck could chuck wood?'};

Найдите шаблон wood в str.

idx = strfind(str,'wood')
idx = 2x1 cell array
    {1x2 double}
    {1x2 double}

Исследуйте выходной массив ячеек, чтобы найти экземпляры шаблона.

idx{:,:}
ans = 1×2

    10    23

ans = 1×2

     6    28

Шаблон wood происходит в индексах 10 и 23 в первом векторе символов и в индексах 6 и 28 во втором векторе символов.

Найдите случаи шаблона в векторе символов. Обеспечьте strfind, чтобы возвратить индексы тех случаев в массиве ячеек. Затем отобразите индексы.

Создайте вектор символов и найдите случаи шаблона ain.

str = 'The rain in Spain.';
k = strfind(str,'ain','ForceCellOutput',true)
k = 1x1 cell array
    {1x2 double}

strfind возвращает скалярную ячейку, которая содержит числовой массив, который содержит индексы случаев шаблона ain в str. Чтобы получить доступ к числовому массиву в ячейке, используйте фигурные скобки.

k{1}
ans = 1×2

     6    15

Входные параметры

свернуть все

Данные, которые будут искаться, заданные как вектор символов, массив ячеек из символьных векторов или массив строк.

Типы данных: char | cell | string

Поисковый шаблон, заданный как вектор символов или скаляр строки.

Типы данных: char | string

Индикатор для принуждения вывода, который будет возвращен как массив ячеек, заданный как false, true, 0 или 1.

Типы данных: логический

Выходные аргументы

свернуть все

Индексы случаев pattern, возвращенного как массив. Если pattern не найден, то k является пустым массивом, [].

  • Если str является вектором символов или скаляром строки, k является вектором, удваивает указание на индекс каждого вхождения pattern.

  • Если str является массивом ячеек из символьных векторов или массивом строк, k является массивом ячеек. Для каждой части текста в str соответствующая ячейка k содержит вектор, удваивает указание на индекс каждого вхождения pattern.

Советы

  • Если pattern является вектором символов или скаляром строки без символов ('' или ""), то strfind возвращает пустой массив.

  • Начиная в R2016b, функция contains рекомендуется для нахождения шаблонов в строковых массивах.

Расширенные возможности

Смотрите также

| | | | | | | | | |

Представлено до R2006a