Тестер regex

Проверка совпадений регулярных выражений

Флаги ?
Тестовый текст
Совпадения
Нет совпадений

Описание инструмента

О Тестер regex

Regex Tester выполняет регулярные выражения JavaScript по тексту и показывает совпадения, группы захвата и их позиции.

Он подходит для отладки шаблонов email, URL, строк лога, извлечения и проверки форм локально в браузере.

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

  1. Введите регулярное выражение без внешних / /.
  2. Включите g, i, m, s, u или y flags по необходимости.
  3. Вставьте тестовый текст и проверьте каждое совпадение, группу захвата и позицию.

Когда это полезно

  • Проверить, не отклоняет ли шаблон проверки формы корректный ввод.
  • Извлечь ID, URL или коды ошибок из логов и текста.
  • Сравнить жадные и ленивые квантификаторы для контроля длины совпадения.

Флаги, группы захвата и частые ошибки

Регулярные выражения JavaScript чувствительны к флагам, экранированию и квантификаторам. Пропущенная обратная косая черта или широкий .* может полностью изменить результат.

  • g возвращает все matches; без g обычно виден первый match.
  • i игнорирует регистр, m заставляет ^ и $ работать по строкам.
  • Скобки создают группы захвата; (?: ) позволяет обойтись без лишних захватов.
  • Интенсивный возврат может замедлить длинный текст, поэтому избегайте вложенных квантификаторов.

Частые вопросы: Тестер regex

Нужно вводить /pattern/g?
Нет. Введите только pattern, а flags задайте отдельными controls.
Почему match длиннее ожидаемого?
.* и .+ по умолчанию жадные. Попробуйте .*? или более конкретный класс символов.
Test текст отправляется на сервер?
Нет. Matching выполняется локально в браузере и не отправляется на wetool.site.

Regex Tester и рабочей среде validation

Тестер даёт быструю обратную связь, но проверка в рабочей среде должна покрывать краевые случаи, пустые значения, ввод Unicode и отличия движка регулярных выражений на бэкенде.

Чек-лист катастрофического бэктрекинга

Регулярное выражение, работающее на коротком примере, может зависнуть на длинном вводе. Перед релизом проверяйте вложенные квантификаторы и слишком широкие шаблоны.

  • Избегайте взрывных вложенных или перекрывающихся шаблонов вроде (.*)+, (.+)+ или (a|aa)+.
  • Используйте явные классы символов вместо .* где возможно; например [^,]* для поля, разделённого запятыми.
  • Ограничивайте длину пользовательского ввода и задавайте тайм-ауты на сервере или используйте движок регулярных выражений со средствами безопасного выполнения.

Регулярные выражения JavaScript и движки других языков

Успех в онлайн-тестере не гарантирует такое же поведение на бэкенде. Флаги, ретроспективная проверка, Unicode и именованные группы различаются между движками.

  • JavaScript g, i, m, s, u и y flags не полностью соответствуют PCRE, Python или Go options.
  • Ретроспективная проверка, экранирование свойств Unicode и именованные группы могут быть недоступны в старых браузерах или некоторых серверных средах выполнения.
  • Перед переносом шаблона на бэкенд покройте пустые значения, длинный ввод, эмодзи и переводы строк модульными тестами на целевом языке.