Python Schoolby trefilov
Шаг 1 из 5+110 XP

Регулярные выражения

Поиск и замена по шаблону через модуль `re`.

Регулярные выражения

Что это

Regex — мини-язык для поиска по шаблону в строках. В Python — модуль re. Шаблоны пишут в raw-строках r"...", чтобы не дублировать обратные слеши.

Как читается

import re

text = "у меня 3 кота и 12 собак"
print(re.findall(r"\d+", text)) # ['3', '12']
print(re.sub(r"\d+", "?", text)) # у меня ? кота и ? собак

Ключевые символы:

- \d — цифра, \w — буква/цифра/_, \s — пробел.
- + — один или больше, * — ноль или больше, ? — ноль или один.
- . — любой символ (кроме перевода строки).
- ^ / $ — начало/конец строки, \b — граница слова.
- [...] — набор символов, [^...] — кроме.
- (...) — группа захвата.

Главные функции: re.findall (все совпадения), re.search (первое или None), re.match (только от начала), re.sub (замена), re.split.

Пример

import re

log = "2024-05-03 ERROR connection lost\n2024-05-03 INFO ok"

Найти все строки уровня ERROR


for line in log.splitlines():
if re.search(r"\bERROR\b", line):
print(line)

Когда использовать / подводные камни

👍 Извлечь телефоны/email/даты, нормализовать пробелы, простые валидации.
👎 Не парси регулярками HTML/JSON — есть нормальные парсеры. И на больших объёмах компилируй: pat = re.compile(r"...") один раз, потом pat.findall(text) — ускоряет в разы.