Начиная с R2016b. Поиск в заменах и заменяющий (R2016a).
Обработка текстовых данных часто включает подстроки поиска и замены. Существует несколько функций, которые находят текст и возвращают различную информацию: некоторые функции подтверждают, что текст существует, в то время как другие считают случаи, найдите начальные значения индекса или извлеките подстроки. Эти функции работают над векторами символов и строковыми скалярами, такими как "yes"
, а также символьные массивы и строковые массивы, такой как ["yes"
, "no";"abc"
x, y, z
]. Кроме того, можно использовать шаблоны, чтобы задать правила для поиска, такие как один или несколько обозначают буквами или символы цифры.
Чтобы определить, присутствует ли текст, используйте функцию, которая возвращает логические значения, как contains
startsWith
, или endsWith
. Логические значения 1
соответствуйте верный, и 0
соответствует лжи.
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
| extract
| count
| pattern
| replace
| strfind