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 | ячейка | строка

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

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

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

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

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

свернуть все

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

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

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

Советы

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

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

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

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

Была ли эта тема полезной?