strfind

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

Описание

пример

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

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

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

пример

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

Примеры

свернуть все

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

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

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

Найдите подстроку in.

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

     2    15    19    36    41

В str существует пять экземпляров.

Найдите подстроку In.

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

     []

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

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

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

     5     9    18    26    29    40    43    45    55

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

Начиная с R2020b

Создайте вектор символов.

str = 'Find the letters.'
str = 
'Find the letters.'

Создайте шаблон, который совпадает с последовательностями букв с помощью lettersPattern функция.

pat = lettersPattern
pat = pattern
  Matching:

    lettersPattern

Найдите индекс каждой буквы. В то время как pat совпадает с последовательностью букв, имеющих любую длину, strfind остановки, как только это находит соответствие и затем переходит к следующему соответствию. Например, 'Find' и 'F' оба соответствия для lettersPattern, поскольку количество букв для соответствия не задано. Но strfind соответствия 'F' сначала и возвращает его индекс. Затем strfind соответствия 'i', и так далее. (Можно вызвать lettersPattern с дополнительным аргументом, который задает количество букв, чтобы соответствовать.)

k = strfind(str,pat)
k = 1×14

     1     2     3     4     6     7     8    10    11    12    13    14    15    16

Чтобы найти запуски слов, вызовите lettersPattern с контурами. letterBoundary функционируйте совпадает с контуром между символами небуквы и буквами.

pat = letterBoundary + lettersPattern
pat = pattern
  Matching:

    letterBoundary + lettersPattern

k = strfind(str,pat)
k = 1×3

     1     6    10

Для списка функций, которые создают объекты шаблона, смотрите pattern.

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

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

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

Найдите wood в str.

idx = strfind(str,'wood')
idx=2×1 cell array
    {[10 23]}
    {[ 6 28]}

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

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
    {[6 15]}

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

k{1}
ans = 1×2

     6    15

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

свернуть все

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

Поисковый шаблон в виде одного из следующего:

  • Массив строк

  • Символьный вектор

  • Массив ячеек из символьных векторов

  • pattern массив (начиная с R2020b)

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

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

свернуть все

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

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

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

Советы

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

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

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

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