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

Вставьте регулярное выражение — со слешами или без — и получите дерево его частей с объяснением каждой простыми словами: какие символы принимает класс, сколько раз повторяет квантификатор, что захватывает группа и что проверяет lookahead. Ошибки показываются с позицией.

Шаблон вроде \d{3}-\d{4} или литерал вроде /\d+/g
/^(?<user>[\w.+-]+)@([a-z\d-]+\.)+[a-z]{2,}$/i
  • ii: без учёта регистра, A совпадает с a.
  • ^Начало текста.
  • (?<user>[\w.+-]+)Захватывающая группа №1 с именем «user»:
  • +Один раз или больше — как можно больше (жадно):
  • [\w.+-]Один символ из набора:
  • \wСимвол слова: латинская буква A–Z или a–z, цифра 0–9 или подчёркивание. Кириллица сюда не входит.
  • .+-Один из символов . + -.
  • @Символ «@».
  • +Один раз или больше — как можно больше (жадно):
  • ([a-z\d-]+\.)Захватывающая группа №2:
  • +Один раз или больше — как можно больше (жадно):
  • [a-z\d-]Один символ из набора:
  • a-zСимвол от «a» до «z».
  • \dЦифра от 0 до 9.
  • -Символ «-».
  • \.Символ «.» буквально (специальный символ, экранированный \).
  • {2,}Число повторов: 2 и больше — как можно больше (жадно):
  • [a-z]Один символ из набора:
  • a-zСимвол от «a» до «z».
  • $Конец текста.

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Введите или вставьте шаблон, например ^\d{3}-\d{4}$, или целый литерал вроде /цвета?/gi.
  2. Если вставили не литерал, введите флаги в поле «Флаги».
  3. Читайте дерево: слева часть шаблона, справа — что она делает. Строки с отступом относятся к группе, классу или квантификатору над ними.

Как это работает

Инструмент разбирает шаблон по грамматике 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.
  • Когда объяснение совпадёт с задуманным, проверьте шаблон на реальном тексте в тестере регулярных выражений.

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

Какой диалект регулярных выражений разбирается?

JavaScript (ECMAScript) — тот, что в RegExp браузеров и Node.js. Синтаксис во многом совпадает с PCRE, Python и Java, но есть отличия: например, \w и \d в JavaScript совпадают только с ASCII даже с флагом u, и нет захватывающих квантификаторов и \A.

Можно вставить /шаблон/флаги?

Да. Если текст начинается с / и заканчивается / с буквами после него, он читается как литерал, и флаги берутся из него, а не из поля «Флаги».

Почему \w не ловит русские буквы?

В JavaScript \w — это ровно [A-Za-z0-9_], а \d — [0-9], с флагом u и без. Для кириллицы пишите [а-яё] (с флагом i — и заглавные) или \p{L} с флагом u — это любая буква любого алфавита.

Что значит «жадно» и «лениво»?

Жадный квантификатор (+, *, {2,}) берёт как можно больше повторов и отдаёт часть, только если остальной шаблон не совпал. Знак ? после него (+?, *?) делает его ленивым: он берёт как можно меньше и добавляет, только когда нужно.

Что инструмент не объясняет?

Устаревшие восьмеричные экранирования вроде \07 и операции над множествами флага v (вложенные классы, && и --) — для них выводится сообщение. Кроме того, шаблон компилирует ваш браузер, поэтому всё, что JavaScript отвергает, тоже будет показано как ошибка.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 4 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.