Как пользоваться
- Введите или вставьте шаблон, например
^\d{3}-\d{4}$, или целый литерал вроде/цвета?/gi. - Если вставили не литерал, введите флаги в поле «Флаги».
- Читайте дерево: слева часть шаблона, справа — что она делает. Строки с отступом относятся к группе, классу или квантификатору над ними.
Как это работает
Инструмент разбирает шаблон по грамматике JavaScript: сначала альтернативы через |, затем элементы с квантификаторами, внутри — группы, классы и экранирование. Подряд идущие обычные символы показываются одним куском текста, если за ними нет квантификатора: в abc+ повторяется только c, поэтому в дереве будет текст «ab», а потом «один раз или больше» для c.
Без флагов u и v браузеры принимают несколько устаревших форм (одиночные { или ], неизвестное экранирование вроде \q означает просто q) — их принимает и разбор. После разбора шаблон ещё компилируется через new RegExp, так что шаблон, который JavaScript отвергнет, никогда не будет объяснён как рабочий.
Пример
^(?<year>\d{4})-(0[1-9]|1[0-2])$ читается так:
^— начало текста;(?<year>…)— захватывающая группа №1 с именем «year»: число повторов ровно 4 — цифра от 0 до 9;-— символ «-»;(…)— захватывающая группа №2: одна из 2 альтернатив — символ «0» и символ от «1» до «9» или символ «1» и символ от «0» до «2»;$— конец текста.
Значит, 2026-07 и 2026-12 подходят, а 2026-13 — нет.
Советы
- Добавьте флаг m, если ^ и $ должны работать на каждой строке многострочного текста.
- Точка не совпадает с переводом строки, пока нет флага s.
- Когда объяснение совпадёт с задуманным, проверьте шаблон на реальном тексте в тестере регулярных выражений.