С R2016b года. Заменяет поиск и замену (R2016a).
Обработка текстовых данных часто включает в себя поиск и замену подстрок. Существует несколько функций, которые находят текст и возвращают различную информацию: одни функции подтверждают, что текст существует, а другие подсчитывают вхождения, находят стартовые индексы или извлекают подстроки. Эти функции работают на векторах символов и строковых скалярах, таких как "yes", а также символьные и строковые массивы, такие как ["yes","no";"abc","xyz"]. Кроме того, можно использовать шаблоны для определения правил поиска, таких как одна или несколько букв или цифр.
Чтобы определить, присутствует ли текст, используйте функцию, возвращающую логические значения, например contains, startsWith, или endsWith. Логические значения 1 соответствуют true, и 0 соответствует значению false.
txt = "she sells seashells by the seashore"; TF = contains(txt,"sea")
TF = logical
1
Вычислите, сколько раз текст встречается с помощью count функция.
n = count(txt,"sea")n = 2
Чтобы найти, где находится текст, используйте strfind функция, которая возвращает стартовые индексы.
idx = strfind(txt,"sea")idx = 1×2
11 28
Поиск и извлечение текста с помощью функций извлечения, таких как extract, extractBetween, extractBefore, или extractAfter.
mid = extractBetween(txt,"sea","shore")
mid = "shells by the sea"
При необходимости включите текст границы.
mid = extractBetween(txt,"sea","shore","Boundaries","inclusive")
mid = "seashells by the seashore"
Функции поиска и замены также могут находить текст в многоэлементных массивах. Например, ищите названия цветов в нескольких названиях песен.
songs = ["Yellow Submarine"; "Penny Lane"; "Blackbird"]; colors =["Red","Yellow","Blue","Black","White"]; TF = contains(songs,colors)
TF = 3x1 logical array
1
0
1
Для вывода списка песен, содержащих названия цветов, используйте логическую TF массив как индексы в оригинале songs массив. Этот метод называется логической индексацией.
colorful = songs(TF)
colorful = 2x1 string
"Yellow Submarine"
"Blackbird"
Используйте функцию replace для замены текста в songs который соответствует элементам colors со строкой "Orange".
replace(songs,colors,"Orange")ans = 3x1 string
"Orange Submarine"
"Penny Lane"
"Orangebird"
С R2020b г.
Помимо поиска буквенного текста, как «море» или «желтый», можно искать текст, соответствующий шаблону. Существует много предопределенных шаблонов, таких как digitsPattern для поиска цифровых цифр.
address = "123a Sesame Street, New York, NY 10128";
nums = extract(address,digitsPattern) nums = 2x1 string
"123"
"10128"
Для дополнительной точности при поиске можно комбинировать образцы. Например, найдите слова, начинающиеся с символа «S». Используйте строку для указания символа «S» и lettersPattern для поиска дополнительных букв после этого символа.
pat = "S" + lettersPattern;
StartWithS = extract(address,pat) StartWithS = 2x1 string
"Sesame"
"Street"
Дополнительные сведения см. в разделе Создание выражений массива.
contains | count | extract | pattern | replace | strfind