Python regex: поиск, группы и замена через re
В Python модуль re ищет шаблон через re.search(), проверяет совпадение с начала строки через re.match() и заменяет фрагменты через re.sub(). Для разбора найденного значения используйте группы в скобках; передавайте шаблон как raw-строку r'...', чтобы обратные слеши не обрабатывались парсером Python.
Найти совпадение и прочитать группу
import re
text = "Заказ #4821 готов"
match = re.search(r"#(\d+)", text)
print(match.group(1) if match else "нет номера") # 4821search() проверяет всю строку и возвращает первый объект совпадения или None. Группа \d+ захватывает цифры после символа #.
Заменить совпадения
import re
text = "Телефон: 8 (999) 123-45-67"
digits = re.sub(r"\D", "", text)
print(digits) # 89991234567Для полной проверки строки применяйте re.fullmatch(), а не search(): так шаблон должен совпасть со всем значением.
Частые функции модуля re
Функция | Когда использовать |
|---|---|
| Найти первое совпадение в любом месте |
| Проверить совпадение с начала строки |
| Проверить всю строку |
| Заменить найденные фрагменты |
| Получить список совпадений |
Как найти все email-подобные фрагменты?
Используйте re.findall(pattern, text) с подходящим шаблоном. Это поиск по формату, а не подтверждение существования или владения почтовым адресом.
Когда ставить флаг IGNORECASE?
Передайте re.IGNORECASE третьим аргументом или добавьте inline-флаг (?i), если совпадение должно игнорировать регистр.