Открыто 6 глав
Первый урок: Операторы ~ и ~*: где LIKE сдаётся
Практический курс · регулярные выражения
LIKE ищет буквы.
Регулярка — по шаблону.
Телефоны в десяти форматах, коды заказов внутри писем, журнал сервера, даты через точку и через косую черту. Курс учит регулярным выражениям там, где лежит такой текст, — прямо в запросах PostgreSQL: найти, проверить, достать и заменить. С кириллицей, «ё» и отличиями от Python и JavaScript.
- Каждое совпадение видно: маркер обводит его скобками
- Задачи проверяются по результату запроса
- Первая глава бесплатна — 3 урока
- Без установки: всё в браузере
- Заказ ⟦KM-2024-001234⟧ до сих пор не пришёл
- Верните деньги за заказ ⟦km-2024-000777⟧
- Заказы ⟦KM-2024-003001⟧, ⟦KM-2024-003002⟧ и ⟦KM-2024-003015⟧
Что болит
Задача с работы — и приём, который её закрывает
Слева — то, с чем приходят. Справа — приём из программы и то, чему посвящена глава.
LIKE находит «кот» и в «скотче», и в «котлете»
шаблон вместо буквОператоры ~ и ~*, наборы символов и границы слова: искать слово, а не кусок, и не терять «ё».
Телефоны в выгрузке записаны десятью способами
чистка и проверкаУбрать лишнее, проверить, что цифр ровно одиннадцать, и собрать номер в один формат — не теряя строки с NULL.
Код заказа спрятан внутри свободного текста
группы захватаsubstring, regexp_substr и regexp_matches достают код в отдельную колонку, даже если в одном письме их три.
Шаблон съел половину строки
жадностьЖадные и ленивые квантификаторы, точный набор вместо «точки со звёздочкой» и правило PostgreSQL, которого нет в учебниках.
Регулярка из Python в базе молча не находит ничего
диалектыЧем PostgreSQL отличается от Python, JavaScript и RE2 в ClickHouse и BigQuery: \b и \y, \w и кириллица, именованные группы, проверки вперёд и назад.
Кому подойдёт курс
- Аналитикам и инженерам данных, которые чистят текст в базе: телефоны, почты, коды, журналы
- Тем, кто копирует регулярки со Stack Overflow и не может объяснить, почему они работают
- Тем, кто знает основы SQL и хочет перестать собирать LIKE из десяти условий
- Тем, кто работает с русским текстом и устал от сюрпризов с «ё» и регистром
Кому курс не подойдёт
- Тем, кому нужны регулярки только в JavaScript или Java: курс работает в PostgreSQL, а другие диалекты разбирает в сравнении
- Тем, кто никогда не писал SELECT: основы SQL курс не объясняет
- Тем, кто ищет теорию автоматов: курс практический, теории ровно столько, сколько нужно для отладки
Как устроено
Шаблон — запуск — маркер
В каждом уроке есть живые ячейки, квиз-ловушка и задача «почини запрос». Шаблон сразу запускается на данных, а маркер показывает, что именно совпало.
Маркер совпадений
С первого урока у тебя есть маркер: запрос обводит каждое совпадение скобками ⟦ ⟧. Видно, где шаблон сработал, где захватил лишнее и где промолчал.
Грязные данные, а не синтетика
Выгрузка контактов, письма в поддержку и журнал веб-сервера «Котомаркета»: опечатки, двойные пробелы, «ё», коды в разном регистре и оборванная строка.
Проверка по результату
В задаче «почини запрос» твой SQL выполняется в песочнице и сравнивается с эталоном. Подходит любой шаблон, который находит то же самое.
Восьмая смена одной истории
Хвост первого сигнала
Первый сигнал принёс на «Хранилище-9» снимок «Котомаркета» — и хвост, который дешифратор станции не смог разложить по таблицам: журнал веб-сервера, письма в поддержку, выгрузку контактов. Полтора века хвост пролежал в Сортировочной, тупике Приёмного уровня, куда станция сбрасывает всё, что не поняла.
Комендант отдаёт его тебе. Наставник тот же — КВЕРИ, старый архивный интеллект с характером кота, — а язык новый: регулярные выражения. Глава за главой хвост превращается в чистые записи, а в последний вечер журнала сервера находится то, ради чего стоило дочитать: как база магазина попала на станцию.
Программа
6 глав, 18 уроков, 9 ч 35 мин
Для открытых глав показываем уроки и прогресс. Первая глава бесплатна, остальные входят в тариф Pro.
Основы: поиск по шаблону вместо LIKE
Сигнал принёс сырой текст, и LIKE в нём тонет. Глава учит искать по шаблону, а не по буквам: операторы ~ и ~*, особые знаки и их экранирование, наборы символов — и ловушку с буквой «ё», о которую спотыкаются почти все.
Квантификаторы: сколько раз повторить
Квантификаторы + * ? и фигурные скобки: код заказа, индекс и время без перечисления цифр. А потом жадность: шаблон, который съедает обращение целиком, и особое правило PostgreSQL о смешанной жадности.
Якоря и границы: проверка всей строки
Поиск куска и проверка всей строки — разные задачи. Якоря ^ и $, границы слова \y, \m, \M (и почему \b в PostgreSQL молчит), валидаторы почты и телефона «в меру строго» — без потерянных NULL.
Группы: достать и заменить часть текста
Альтернатива и скобки, группы захвата, substring, regexp_substr и regexp_matches — достать код заказа в колонку. Замена с \1 и \&: даты в ISO, один вид города, телефоны в формате +7.
Обратные ссылки, lookaround и флаги
Обратные ссылки ловят повторы, проверки вперёд и назад маскируют номер карты и проверяют пароль, флаги меняют поиск, а regexp_split_to_table режет текст на слова.
Практика: журнал, чужие шаблоны, диалекты
Журнал nginx за последний вечер «Котомаркета» разбирается одной регуляркой в колонки. Дальше — чужой шаблон по частям и в режиме (?x), и то, как регулярки ведут себя в Python, JavaScript, ClickHouse и BigQuery, включая катастрофический откат.
Границы курса
Чего в курсе нет — и почему
Разбор HTML, JSON и адресов регулярками
У этих форматов есть структура, и регулярка на них ломается на первом же вложенном теге или экранированной кавычке.
Курс показывает, где остановиться: операторы JSON, split_part и обычный SQL — в уроке о чужих регулярках.
Всё многообразие PCRE
Атомарные группы, условные конструкции и управляющие глаголы есть не в каждом движке, а в PostgreSQL их нет вовсе.
Курс учит ядру, которое работает везде, и отдельно — различиям диалектов, чтобы шаблон переносился без сюрпризов.
FAQ
Частые вопросы
Хватит основ: SELECT, WHERE и ORDER BY. Регулярки в курсе работают внутри запросов PostgreSQL, но каждый новый приём SQL — функцию или соединение с функцией во FROM — урок объясняет на месте.
Хвост сигнала ждёт сортировщика
Первая глава открыта целиком: 3 урока без подписки и карты.