Регулярные выражения (regex) - мощный инструмент для работы с текстом, позволяющий искать, извлекать и заменять подстроки по заданному шаблону.
Основные функции модуля re
1. Поиск совпадений
re.search(pattern, string)- ищет первое совпадение с шаблоном в строкеre.match(pattern, string)- ищет совпадение только в начале строкиre.fullmatch(pattern, string)- проверяет, соответствует ли вся строка шаблону
2. Поиск всех совпадений
re.findall(pattern, string)- возвращает список всех совпаденийre.finditer(pattern, string)- возвращает итератор с объектами совпадений
3. Замена текста
re.sub(pattern, repl, string)- заменяет все совпадения на replre.subn(pattern, repl, string)- аналогично sub, но возвращает кортеж (новая_строка, количество_замен)
4. Разделение строки
re.split(pattern, string)- разделяет строку по шаблону
Синтаксис регулярных выражений
Основные метасимволы
.- любой символ, кроме новой строки^- начало строки$- конец строки*- 0 или более повторений+- 1 или более повторений?- 0 или 1 повторение{n}- ровно n повторений{n,}- n или более повторений{n,m}- от n до m повторений
Классы символов
[abc]- любой из символов a, b или c[a-z]- любой символ от a до z[^abc]- любой символ, кроме a, b или c\d- цифра (аналог [0-9])\D- не цифра\s- пробельный символ (пробел, табуляция, новая строка)\S- не пробельный символ\w- буквенно-цифровой символ или нижнее подчеркивание (аналог [a-zA-Z0-9_])\W- не буквенно-цифровой символ
Группировка
( )- создает группу(?: )- не захватывающая группа (только для группировки)|- логическое ИЛИ\1, \2- ссылки на группы
Специальные последовательности
\b- граница слова\B- не граница слова\A- начало строки (как ^, но в многострочном режиме работает иначе)\Z- конец строки (как $, но в многострочном режиме работает иначе)
Флаги (модификаторы)
re.IGNORECASE(re.I) - игнорировать регистрre.MULTILINE(re.M) - многострочный режим (^ и $ работают для начала/конца каждой строки)re.DOTALL(re.S) - точка включает символ новой строкиre.ASCII- \w, \W, \b, \B, \d, \D, \s, \S соответствуют ASCIIre.VERBOSE(re.X) - позволяет писать более читаемые regex с комментариями
Примеры использования
import re
# Поиск первого совпадения
match = re.search(r'\d+', 'abc 123 def')
if match:
    print(match.group())  # 123
# Поиск всех совпадений
numbers = re.findall(r'\d+', '1, 2, 3, 4, 5')
print(numbers)  # ['1', '2', '3', '4', '5']
# Замена текста
text = re.sub(r'\s+', ' ', 'Много    пробелов   здесь')
print(text)  # 'Много пробелов здесь'
# Разделение строки
parts = re.split(r'[,;]\s*', 'one,two;three, four')
print(parts)  # ['one', 'two', 'three', 'four']
# Использование групп
match = re.search(r'(\w+)@(\w+\.\w+)', 'user@example.com')
if match:
    print(match.group(1))  # user
    print(match.group(2))  # example.com
# Использование флагов
text = 'Python is great\npython is versatile'
matches = re.findall(r'^python', text, flags=re.IGNORECASE | re.MULTILINE)
print(matches)  # ['Python', 'python']Объекты совпадений (Match objects)
При успешном поиске возвращается объект Match с методами:
group()- возвращает совпавшую подстрокуgroup(n)- возвращает n-ю группуgroups()- возвращает кортеж всех группstart()- начальная позиция совпаденияend()- конечная позиция совпаденияspan()- кортеж (start, end)
Компиляция регулярных выражений
Для многократного использования шаблона его можно скомпилировать:
pattern = re.compile(r'\b\w{4}\b')  # слова из 4 букв 
matches = pattern.findall('This is a test string') 
print(matches)  # ['This', 'test']Регулярные выражения - мощный инструмент, но сложные шаблоны могут быть трудными для чтения и отладки. Для сложных задач обработки текста иногда лучше использовать комбинацию строковых методов.
Задачи для закрепления материала по регулярным выраженим можно посмотреть тут
На самом деле, эта информация не более чем освежить в памяти что такое регулярные выражения -реально мощный инструмент как для решения задач так и для практики. Если вы хотите более подробно почитать, что такое регулярные выражения то вам на Хабр вот ссылка. Там потрясающая статья о регулярках, подробно полно плюс практика по ним. Да, статья 2018 года, но с этого момента ни чего не поменялось в них.