Регулярные выражения для новичков: пять шаблонов, которые решают 90% задач
Задача: вытащить все даты из документа, найти в логе все строки с ценами, проверить, что email в форме похож на email. Решение у всех одно — регулярное выражение. Выглядит оно как заклинание из точки-звёздочки-скобки, но устроено проще, чем кажется: это просто шаблон, который описывает, как должен выглядеть нужный кусок текста.
Из чего состоит шаблон
- обычные символы значат сами себя: слово «кот» найдёт слово «кот»;
- \d — любая цифра, \w — буква, цифра или подчёркивание, \s — пробел;
- ^ и $ — начало и конец строки;
- квантификаторы: * (ноль и больше), + (один и больше), ? (может быть), {2,4} (от двух до четырёх раз);
- точка — любой символ, поэтому для настоящей точки пишут \.
Соберём это в живой пример. Дата вида 04.09.2026 — это две цифры, точка, две цифры, точка, четыре цифры. Шаблон: \d{2}\.\d{2}\.\d{4}. Всё, никаких «заклинаний» — по-русски это читается как «две цифры, точка, две цифры, точка, четыре цифры».
Пять шаблонов на каждый день
- дата — \d{2}\.\d{2}\.\d{4} (04.09.2026);
- время — \d{2}:\d{2} (14:37);
- email (упрощённо, но для поиска по тексту хватает) — \S+@\S+\.\S+;
- цена — \d+(?:[ ,]\d+)?\s?(руб|₽|р\.) — найдёт и «1500 руб», и «1 500 ₽»;
- двойные пробелы — " " (два пробела) с заменой на один: этим шаблоном чистят текст после копирования из PDF.
Как проверять, не сломав рабочее
Главная привычка при работе с regexp — сначала тест на реальном тексте. Откройте тестер регулярных выражений, вставьте кусок настоящего документа и свой шаблон: подсветятся все совпадения, сразу видно, где regexp «жадничает» и захватывает лишнее. Ловушка новичков именно тут: шаблон \d+ для «цены» соберёт и цифры из номера телефона, если в тексте есть телефоны. Тест на живых данных это показывает за секунду.
Когда шаблон отлажен, его можно переносить в поиск и замену — там тот же синтаксис поддерживается, включая замены с группами. Так чистят списки, переименовывают поля в выгрузках, вытаскивают значения из логов.
Когда regexp — не ответ
Регулярки отлично ищут в «плоском» тексте и плохо работают с вложенной структурой. Разбирать HTML регулярками — классическая ошибка: вложенные теги формально не описываются регулярным языком, и рано или поздно шаблон ломается на невинном фрагменте. Для структурированных данных берите парсеры, а регулярки оставляйте тому, для чего они созданы — поиску и замене по тексту.