Способы поиска и обработки текста
1. Встроенные методы строк (str)
str.find(substring)— возвращает индекс первого вхождения подстроки или -1, если не найдено.str.index(substring)— то же, но вызывает ошибку, если подстрока не найдена.str.count(substring)— считает количество вхождений подстроки.str.startswith(prefix)иstr.endswith(suffix)— проверяют начало и конец строки.str.replace(old, new)— замена подстроки.str.split(sep)— разбивает строку по разделителю.str.strip()— удаляет пробелы и спецсимволы по краям.
Пример:
text = "Hello, world! Hello!"
print(text.find("world")) # 7
print(text.count("Hello")) # 2
print(text.startswith("Hell")) # True2. Регулярные выражения (модуль re)
re)Самый мощный и гибкий способ поиска и обработки сложных шаблонов текста.
Основные функции:
re.search(pattern, string)— ищет первое совпадение.re.findall(pattern, string)— возвращает список всех совпадений.re.match(pattern, string)— проверяет совпадение только в начале строки.re.sub(pattern, repl, string)— замена по шаблону.
Пример:
import re
text = "User: alice, ID: 1234"
# Найти ID
match = re.search(r'ID:\s*(\d+)', text)
if match:
print(match.group(1)) # 1234
# Найти все слова, начинающиеся с буквы 'a'
print(re.findall(r'\ba\w*', text)) # ['alice']3. Методы обработки текста с помощью библиотеки string
stringstringсодержит полезные константы и функции, напримерstring.ascii_letters,string.punctuationдля фильтрации и проверки символов.
4. Использование in для проверки вхождения подстроки
in для проверки вхождения подстрокиif "error" in log_line.lower():
print("Обнаружена ошибка")5. Пример сложной обработки
Парсинг лога с помощью регулярных выражений, фильтрация строк, подсчёт ошибок и замена:
import re
log = """
ERROR: file not found
WARNING: low disk space
ERROR: access denied
"""
errors = re.findall(r'ERROR: (.+)', log)
print(errors) # ['file not found', 'access denied']
cleaned_log = re.sub(r'WARNING: .+', '', log)
print(cleaned_log)Где применяется на практике?
Проверка содержимого ответов API в тестах.
Валидация логов и поиск ошибок.
Обработка и фильтрация текстовых данных в тестовых данных и отчетах.
Last updated
Was this helpful?