Поиск и замена текста¶
Обработка текстовых данных часто включает поиск и замену подстрок. Существует несколько функций, которые находят текст и возвращают различную информацию: некоторые функции подтверждают, что текст существует, другие подсчитывают количество повторений фрагмента текста, находят индексы или извлекают подстроки.
Поиск текста¶
Чтобы определить, присутствет ли фрагмент текста, можно применить функцию occursin()
. Логические значения 1 соответствуют true, а 0 - false.
txt = "she sells seashells by the seashore"
TF = occursin("sea", txt)
Подсчитать, сколько раз встречается этот текст,можно используя функцию count()
.
n = count("sea", txt)
Чтобы определить, где находится текст, используйте функцию findall()
, которая возвращает индексы символов, которые совпадают с фрагментом текста "sea".
idx = findall("sea", txt)
Поиск текста в массивах строк¶
Функции поиска и замены также позволяют находить текст в многоэлементных массивах. Например, найдите названия цветов в названиях нескольких песен.
songs = ["Penny Lane", "Yellow Submarine","Blackbird"]
colors = ["Red", "Yellow", "Black"]
TF = occursin.(colors,songs)
Чтобы отобразить список песен, содержащих названия цветов, используйте логический массив TF в качестве индексов в исходном массиве композиций. Этот метод называется логической индексацией.
songs[TF]
Совпадающие шаблоны¶
В дополнение к поиску буквального текста, такого как “sea” или “yellow”, можно выполнить поиск текста, соответствующего шаблону. Существует множество предопределенных шаблонов, таких как digits для поиска последовательности цифр.
address = " Sesame Street, New York, NY 10128"
nums = match(r"\d+", address)
Для большей точности поиска вы можете комбинировать шаблоны. Например, найдите слова, начинающиеся с буквы “S”. Используйте строку, чтобы указать символ “S”, и lettersPattern, чтобы найти дополнительные буквы после этого символа.
lettersPattern = r"[a-zA-Z]+"
pat = "N" * lettersPattern
StartWithS = match.(pat, address).match
Другие функции для работы с текстом в Engee можно найти в разделе Текстовые строки.