Хранилище-9 · Сортировочная

Открыто 6 глав

Первый урок: Операторы ~ и ~*: где LIKE сдаётся

0/18
уроков пройдено
0· +10 за урок
Начать бесплатно

Практический курс · регулярные выражения

LIKE ищет буквы.
Регулярка — по шаблону.

Телефоны в десяти форматах, коды заказов внутри писем, журнал сервера, даты через точку и через косую черту. Курс учит регулярным выражениям там, где лежит такой текст, — прямо в запросах PostgreSQL: найти, проверить, достать и заменить. С кириллицей, «ё» и отличиями от Python и JavaScript.

  • Каждое совпадение видно: маркер обводит его скобками
  • Задачи проверяются по результату запроса
  • Первая глава бесплатна — 3 урока
  • Без установки: всё в браузере
regexp_replace(body, 'KM-\d{4}-\d{6}', '⟦\&⟧', 'gi')
  • Заказ ⟦KM-2024-001234⟧ до сих пор не пришёл
  • Верните деньги за заказ ⟦km-2024-000777⟧
  • Заказы ⟦KM-2024-003001⟧, ⟦KM-2024-003002⟧ и ⟦KM-2024-003015⟧
Шесть кодов в трёх обращениях — и строчный тоже.
6 глав
от первого шаблона до разбора журнала
18
уроков с живыми ячейками SQL
9 ч 35 мин
по сумме всех уроков
3
урока бесплатно, без карты

Что болит

Задача с работы — и приём, который её закрывает

Слева — то, с чем приходят. Справа — приём из программы и то, чему посвящена глава.

  • 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.

Глава 1бесплатнооткрыта

Основы: поиск по шаблону вместо LIKE

Сигнал принёс сырой текст, и LIKE в нём тонет. Глава учит искать по шаблону, а не по буквам: операторы ~ и ~*, особые знаки и их экранирование, наборы символов — и ловушку с буквой «ё», о которую спотыкаются почти все.

операторы ~ и ~*экранированиенаборы и «ё»
3 урока · 1 ч 33 минартефакт: маркер, который подсвечивает совпадения
Глава 2 PROзакрыта

Квантификаторы: сколько раз повторить

Квантификаторы + * ? и фигурные скобки: код заказа, индекс и время без перечисления цифр. А потом жадность: шаблон, который съедает обращение целиком, и особое правило PostgreSQL о смешанной жадности.

+ * ? и {n,m}жадные и ленивыепустые совпадения
3 урока · 1 ч 31 мин
Глава 3 PROзакрыта

Якоря и границы: проверка всей строки

Поиск куска и проверка всей строки — разные задачи. Якоря ^ и $, границы слова \y, \m, \M (и почему \b в PostgreSQL молчит), валидаторы почты и телефона «в меру строго» — без потерянных NULL.

якоря ^ и $граница словавалидаторы
3 урока · 1 ч 31 мин
Глава 4 PROзакрыта

Группы: достать и заменить часть текста

Альтернатива и скобки, группы захвата, substring, regexp_substr и regexp_matches — достать код заказа в колонку. Замена с \1 и \&: даты в ISO, один вид города, телефоны в формате +7.

альтернатива |группы захватаregexp_replace
3 урока · 1 ч 41 мин
Глава 5 PROзакрыта

Обратные ссылки, lookaround и флаги

Обратные ссылки ловят повторы, проверки вперёд и назад маскируют номер карты и проверяют пароль, флаги меняют поиск, а regexp_split_to_table режет текст на слова.

обратные ссылкиlookaroundфлаги
3 урока · 1 ч 43 мин
Глава 6 PROзакрыта

Практика: журнал, чужие шаблоны, диалекты

Журнал nginx за последний вечер «Котомаркета» разбирается одной регуляркой в колонки. Дальше — чужой шаблон по частям и в режиме (?x), и то, как регулярки ведут себя в Python, JavaScript, ClickHouse и BigQuery, включая катастрофический откат.

разбор журналачтение чужих шаблоновдиалекты и RE2
3 урока · 1 ч 36 минартефакт: разбор журнала веб-сервера в колонки

Границы курса

Чего в курсе нет — и почему

  • Разбор HTML, JSON и адресов регулярками

    У этих форматов есть структура, и регулярка на них ломается на первом же вложенном теге или экранированной кавычке.

    Курс показывает, где остановиться: операторы JSON, split_part и обычный SQL — в уроке о чужих регулярках.

  • Всё многообразие PCRE

    Атомарные группы, условные конструкции и управляющие глаголы есть не в каждом движке, а в PostgreSQL их нет вовсе.

    Курс учит ядру, которое работает везде, и отдельно — различиям диалектов, чтобы шаблон переносился без сюрпризов.

FAQ

Частые вопросы

  • Хватит основ: SELECT, WHERE и ORDER BY. Регулярки в курсе работают внутри запросов PostgreSQL, но каждый новый приём SQL — функцию или соединение с функцией во FROM — урок объясняет на месте.

Хвост сигнала ждёт сортировщика

Первая глава открыта целиком: 3 урока без подписки и карты.