Python regex: поиск, группы и замена через re

Категория: Python · Язык: Python · Обновлено:

В Python модуль re ищет шаблон через re.search(), проверяет совпадение с начала строки через re.match() и заменяет фрагменты через re.sub(). Для разбора найденного значения используйте группы в скобках; передавайте шаблон как raw-строку r'...', чтобы обратные слеши не обрабатывались парсером Python.

Найти совпадение и прочитать группу

Python
import re

text = "Заказ #4821 готов"
match = re.search(r"#(\d+)", text)
print(match.group(1) if match else "нет номера")  # 4821

search() проверяет всю строку и возвращает первый объект совпадения или None. Группа \d+ захватывает цифры после символа #.

Заменить совпадения

Python
import re

text = "Телефон: 8 (999) 123-45-67"
digits = re.sub(r"\D", "", text)
print(digits)  # 89991234567

Для полной проверки строки применяйте re.fullmatch(), а не search(): так шаблон должен совпасть со всем значением.

Частые функции модуля re

Функция

Когда использовать

re.search(pattern, text)

Найти первое совпадение в любом месте

re.match(pattern, text)

Проверить совпадение с начала строки

re.fullmatch(pattern, text)

Проверить всю строку

re.sub(pattern, replacement, text)

Заменить найденные фрагменты

re.findall(pattern, text)

Получить список совпадений

Как найти все email-подобные фрагменты?

Используйте re.findall(pattern, text) с подходящим шаблоном. Это поиск по формату, а не подтверждение существования или владения почтовым адресом.

Когда ставить флаг IGNORECASE?

Передайте re.IGNORECASE третьим аргументом или добавьте inline-флаг (?i), если совпадение должно игнорировать регистр.