exponenta event banner

strmatch

(Не рекомендуемый), Находят возможные соответствия для строки

strmatch не рекомендуется. Используйте startsWith, strncmp или validatestring, в зависимости от ваших требований, вместо этого. startsWith и strncmp возвращают логический массив, указывающий, какие элементы массива начинаются с заданной строки, тогда как validatestring возвращает одну строку, которая представляет лучшее соответствие заданной строке. Смотрите Пример 2, ниже.

Чтобы найти точное совпадение для строки, используйте strcmp.

Синтаксис

x = strmatch(str, strarray)
x = strmatch(str, strarray, 'exact')

Описание

x = strmatch(str, strarray) просматривает строки символьного массива или массива ячеек из символьных векторов strarray, чтобы найти векторы символов, которые начинаются с текста, содержавшегося в str, и возвращает соответствующие индексы строки. Если strmatch не находит str в strarray, x является пустой матрицей ([]). Любые символы конечного пробела в str или strarray проигнорированы при соответствии. strmatch является самым быстрым, когда strarray является символьным массивом.

x = strmatch(str, strarray, 'exact') сравнивает str с каждой строкой strarray, ища точное совпадение целого вектора символов. Любые символы конечного пробела в str или strarray проигнорированы при соответствии.

Примеры

Пример 1

Оператор

x = strmatch('max', char('max', 'minimax', 'maximum'))

возвращает x = [1; 3], поскольку строки 1 и 3 начинаются с 'max'. Оператор

x = strmatch('max', char('max', 'minimax', 'maximum'),'exact')

возвращает x = 1, поскольку только строка 1 совпадает с 'max' точно.

Пример 2

Этот пример показывает, как заменить использование функции strmatch с validatestring или strncmp.

Прежде всего, используйте strmatch, чтобы возвратить индекс тех элементов, для которых существует соответствие:

list = {'max', 'minimax', 'maximum', 'max'}
x = strmatch('max',list)
x =
     1
     3
     4

validatestring возвращает строку, представляющую лучшее соответствие. Если бы несколько или никакие соответствия существуют, этот оператор возвратил бы ошибку:

list = {'max', 'minimax', 'maximum', 'max'};
x = validatestring('max', list)
x =
   max

strncmp возвращает логический массив, указывающий, какие строки совпадают с заданной строкой:

list = {'max', 'minimax', 'maximum', 'max'};
x = strncmp('max', list, 3)
x =
     1     0     1     1

Если вы предпочитаете, чтобы MATLAB возвратил числовые индексы list, используйте find можно следующим образом:

list = {'max', 'minimax', 'maximum', 'max'}
x = find(strncmp(list, 'max', 3))

Если ваш вход к strmatch является символьным массивом с несколькими строками, то сначала преобразовывают символьный массив в массив ячеек с помощью cellstr. Затем передайте вывод от cellstr до strncmp или validatestring

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

| | | | | | | |

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