Статья Автор: Деникина Н.В., Деникин А.В.

Функции модуля re

01 re.findall() — найти ВСЁ

Находит все совпадения и возвращает список строк.

prices = re.findall(r'\d+', "Цены: 100р, 250р, 99р")
# ['100', '250', '99'] — список строк!
total = sum(int(p) for p in prices)  # 449
⚠️ Результат — всегда список строк! Чтобы считать, конвертируй: int(numbers[0])
Тестер · findall
Текст
Паттерн
 
 

02 re.search() — найти ПЕРВОЕ

Находит первое совпадение, возвращает Match-объект или None.

match = re.search(r'\d{11}', "Номер: 89161234567")
if match:
    print(match.group())  # 89161234567
    print(match.start())  # 8 (позиция)
Метод Match Что возвращает
.group() Найденный текст
.start() Позиция начала
.end() Позиция конца
.span() Кортеж (start, end)
Тестер · search (подсветка первого)
Текст
Паттерн
 
 

03 re.match() и re.fullmatch()

match() — начало строки

re.match(r'\d+', '123abc') → ✅
re.match(r'\d+', 'abc123') → ❌

fullmatch() — ВСЯ строка

re.fullmatch(r'\d+', '12345') → ✅
re.fullmatch(r'\d+', '123abc') → ❌

💡 Когда fullmatch? Для валидации: PIN-код ровно 4 цифры → re.fullmatch(r'\d{4}', pin)
Тестер · валидация PIN-кода
Введи PIN
 

04 re.sub() — найти и заменить

text = "Пароль: 12345, код: 9999"
result = re.sub(r'\d+', '[ЧИСЛО]', text)
# "Пароль: [ЧИСЛО], код: [ЧИСЛО]"
Тестер · sub (замена)
Текст
Паттерн → Замена
 

05 re.split() — разрезать строку

text = "яблоко, банан; груша  апельсин"
parts = re.split(r'[,;\s]+', text)
# ['яблоко', 'банан', 'груша', 'апельсин']
Тестер · split (разрезание)
Текст
Паттерн-разделитель
 

06 re.finditer()

Как findall, но возвращает итератор Match-объектов — с позициями.

for match in re.finditer(r'\d+', "100р, 250р"):
    print(f"'{match.group()}' на позиции {match.start()}")
Тестер · finditer (с позициями)
Текст
Паттерн
 
 

Шпаргалка модуля 3

Функция Возвращает Когда
findall(p, s) Список строк Все совпадения
search(p, s) Match / None Первое совпадение
match(p, s) Match / None Проверка начала
fullmatch(p, s) Match / None Валидация формата
sub(p, r, s) Строка Замена
split(p, s) Список Разрезание
finditer(p, s) Итератор Match С позициями
Печать