DevToolPal
RU

Тестер регулярных выражений

Проверка регулярных выражений JavaScript в реальном времени: подсветка совпадений, группы захвата и предпросмотр замены.

Работает локально, без загрузки на сервер

Параметры

Тестовая строка

Символов: 0 · 0 B

Результат

Здесь появится результат

Что делает инструмент

Тестер регулярных выражений позволяет написать регулярное выражение и прямо по мере ввода видеть, что именно оно находит в тексте примера. Совпадения подсвечиваются на месте, каждая группа захвата выводится со своим значением и позицией, а необязательный шаблон замены показывает, что вернул бы String.replace.

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

  1. Вставьте текст для поиска в поле Тестовая строка или нажмите Пример.
  2. Введите шаблон в поле Регулярное выражение на панели параметров. Окружающие косые черты добавлять не нужно.
  3. Включите нужные флаги: g — все совпадения, i — без учёта регистра, m — ^ и $ для каждой строки, s — чтобы . совпадала и с переводом строки, u — полная поддержка Unicode.
  4. Изучите результат: число совпадений, подсвеченный текст и таблицу с каждым совпадением и его группами. Нажмите Копировать, чтобы скопировать любое значение.
  5. Чтобы проверить подстановку, заполните Заменить на, например $2, $1.

Пример

Шаблон по умолчанию ([\w.+-]+)@([\w-]+(?:\.[\w-]+)+) находит адреса электронной почты и отдельно захватывает имя пользователя и домен. С заменой $1 at $2 текст hello@example.com превращается в hello at example.com.

Краткая справка

  • \d цифра, \w символ слова, \s пробельный символ, . любой символ
  • * ноль или больше, + один или больше, ? необязательно, {2,5} от 2 до 5
  • [abc] один из, [^abc] ни один из, a|b одно из двух
  • (...) группа захвата, (?<name>...) именованная группа, (?:...) группа без захвата
  • (?=...) опережающая проверка, (?<=...) ретроспективная проверка, \b граница слова

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

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

Движок JavaScript (ECMAScript), встроенный в ваш браузер, — тот же, что используют Node.js, Deno и все браузеры. Большая часть синтаксиса совпадает с PCRE, Python и Java, но некоторые возможности, например захватывающие квантификаторы и рекурсия, не поддерживаются.

› Почему мой шаблон находит только одно совпадение?

Включите флаг «Глобально (g)». Без него JavaScript останавливается после первого совпадения.

› Как сослаться на группы в строке замены?

Используйте $1, $2… для нумерованных групп, $<name> для именованных, $& для всего совпадения и $$ для буквального знака доллара.

› Почему ^ и $ не совпадают в начале и конце каждой строки?

По умолчанию они совпадают только в начале и конце всего текста. Включите «Многострочный (m)», чтобы они срабатывали на переносах строк.

› Отправляется ли мой текст куда-нибудь?

Нет. Поиск совпадений выполняется в браузере. Очень медленные шаблоны (катастрофический возврат) могут подвесить вкладку, поэтому избегайте вложенных квантификаторов вроде (a+)+ на длинных входных данных.