Регулярные выражения в Python от простого к сложному
17.01.2025
Last updated
17.01.2025
Last updated
Регулярные выражения (регулярки) — это мощный инструмент для поиска и обработки текста. В Python работа с регулярными выражениями реализована через модуль re
.
Регулярное выражение — это строка, задающая шаблон поиска в тексте. Оно состоит из:
Обычных символов: соответствуют самим себе.
Специальных символов: например, \d
— любая цифра, \w
— буква или цифра.
Примеры:
\d{5}
— пять подряд идущих цифр.
\w+
— одно или более букв/цифр.
Специальные символы требуют экранирования с помощью \
(например, \.
для точки).
simple text
Строка "simple text"
\d{5}
Последовательность из 5 цифр
\b\w{3}\b
Слово из ровно 3 букв
[-+]?\d+
Целое число с опциональным знаком
\d{2}/\d{2}/\d{4}
Дата в формате ДД/ММ/ГГГГ
Квантификаторы задают количество повторений для символов или групп:
{n}
Ровно n
повторений
{m,n}
От m
до n
повторений
?
Ноль или одно вхождение
*
Ноль или больше повторений
+
Одно или больше повторений
Пример:
a\d{2,4}
— символ "a", за которым идут от 2 до 4 цифр.
Квантификаторы в регулярках обычно жадные, т.е. захватывают максимально возможное количество символов. Для изменения поведения можно использовать "ленивые" квантификаторы (с ?
):
Жадный: .*
Ленивый: .*?
Пример:
|
)Для соответствия одному из нескольких шаблонов используется |
(операция "ИЛИ"):
Пример: (яблоко|груша|банан)
найдёт любое из слов "яблоко", "груша", "банан".
Группы позволяют:
Локализовать часть шаблона для применения квантификаторов.
Получать доступ к содержимому групп через match
-объекты.
Пример группировки:
Функции модуля re
:
re.search
Ищет первое совпадение
re.fullmatch
Проверяет полное соответствие
re.findall
Возвращает список всех совпадений
re.finditer
Итератор по совпадениям
re.sub
Замена шаблона
Пример:
Найти все натуральные числа в тексте.
Найти слова, содержащие цифры.
Преобразовать даты из формата ДД/ММ/ГГГГ
в ГГГГ-ММ-ДД
.
Пример задачи:
— отладка и тестирование.
— подробное руководство.