Поиск и замена текста
Обработка текстовых данных часто включает поиск и замену подстрок. Существует несколько функций, которые находят текст и возвращают различную информацию: некоторые функции подтверждают, что текст существует, другие подсчитывают количество повторений фрагмента текста, находят индексы или извлекают подстроки.
Поиск текста
Чтобы определить, присутствет ли фрагмент текста, можно применить функцию 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 можно найти в разделе Текстовые строки.