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

Проверяйте регулярные выражения JavaScript в реальном времени со всеми флагами (g i m s u y d): подсветка совпадений, группы, именованные группы, индексы и предпросмотр замены.

//g

Используется движок регулярных выражений JavaScript (ECMAScript) вашего браузера в фоновом воркере. Синтаксис PCRE/Python, например притяжательные квантификаторы или встроенные модификаторы (?i), может не поддерживаться.

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

Проверяет регулярное выражение JavaScript на вашем тексте по мере ввода. Совпадения подсвечиваются, таблица показывает каждое совпадение с позицией, нумерованные и именованные группы захвата (и индексы групп с флагом d), а необязательный предпросмотр замены показывает результат String.replace. Шаблоны выполняются в фоновом воркере, который останавливается через 1,5 секунды, поэтому катастрофические шаблоны не могут зависнуть страницу.

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

  1. Введите шаблон (без слэшей) в поле Регулярное выражение.
  2. Отметьте нужные флаги: g, i, m, s, u, y, d.
  3. Вставьте текст для поиска в Тестовая строка — совпадения обновляются автоматически.
  4. Отметьте Заменить совпадения на… и введите замену (с $1, $<name>, $& …), чтобы увидеть результат.

Пример

Ввод
Pattern (?<y>\d{4})-(\d{2}) with flags g, text "a 2024-05 b 1999-12", replacement $2/$<y>
Вывод
2 match(es) · replaced: a 05/2024 b 12/1999

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

Используйте для создания и отладки регулярных выражений для JavaScript, TypeScript и Node.js, правил валидации и поиска с заменой. Другие движки (PCRE, Python, Java, .NET, POSIX) различаются синтаксисом и возможностями — например, притяжательные квантификаторы, встроенные модификаторы вроде (?i) и якоря \A/\Z недоступны, — поэтому проверяйте и там, если ориентируетесь на них.

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

Шаблон компилируется через new RegExp(pattern, flags) внутри Web Worker. С флагом g или y инструмент проходит по exec() и собирает до 1000 совпадений (пустые совпадения сдвигаются на один кодовый пункт, чтобы избежать бесконечных циклов); без них сообщается только первое совпадение, в точности как в JavaScript. Для каждого совпадения записываются начальный и конечный индекс, группы захвата, именованные группы и, с флагом d, indices для каждой группы. Предпросмотр замены выполняет text.replace(regex, replacement). Если воркер не отвечает в течение 1500 мс, он завершается и показывается сообщение о тайм-ауте.

Распространенные Случаи Использования

  • Отладка шаблона валидации для поля формы
  • Извлечение данных с именованными группами захвата
  • Предпросмотр поиска с заменой перед запуском на файлах
  • Изучение того, как флаги m, s и u меняют сопоставление
  • Проверка шаблона на катастрофический возврат

Часто Задаваемые Вопросы

Почему моё выражение находит только первое совпадение?

Без флага g (global) JavaScript останавливается после первого совпадения. Отметьте g, чтобы увидеть все совпадения.

Что делает флаг d?

Он добавляет indices к каждому совпадению, давая начальную и конечную позицию каждой группы захвата. Инструмент показывает их рядом с каждой группой.

Что происходит с катастрофическим шаблоном вроде (a+)+$?

Воркер, который его выполняет, завершается через 1,5 секунды, и вы видите сообщение о тайм-ауте вместо зависшей вкладки.

Совместимо ли это с PCRE или регулярками Python?

В основном для базового синтаксиса, но не полностью. Используется движок ECMAScript вашего браузера.

Другие категории