Toolbox Hub
Все инструменты

Regex Tester

Test regular expressions

Test regular expressions Запускается локально в вашем браузере

About the

Тестер регулярных выражений запускает регулярное выражение JavaScript для вашего собственного образца текста и выделяет каждое совпадение по мере ввода, поэтому вы можете наблюдать за успехом или неудачей шаблона, а не гадать. Наряду с основными моментами в нем перечислено каждое совпадение с его начальной позицией и группами захвата, которые фактически сообщают вам, является ли группа 2 нужным значением или пустой строкой. Три ошибки вызывают большинство неправильных регулярных выражений, и все три видны здесь: жадный квантификатор, незаметно поглощающий больше текста, чем предполагалось, неэкранированная точка, совпадающая с чем угодно, и отсутствующий глобальный флаг, который останавливает поиск после первого попадания.

Where people use the

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

How to use the

  1. 1

    Вставьте текст, который вы хотите протестировать

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

  2. 2

    Напишите шаблон

    Введите выражение без косой черты, например [a-z]+, а не /[a-z]+/. Флаги — это отдельные переключатели.

  3. 3

    Включить или выключить флаги

    g находит каждое совпадение вместо того, чтобы останавливаться на первом, i игнорирует регистр, m заставляет привязки работать для каждой строки, s позволяет точке переходить на новую строку, u включает полный режим Unicode, а y привязывает совпадения к LastIndex.

  4. 4

    Читать таблицу соответствия

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

  5. 5

    Копируем готовый узор

    Когда выделение будет выглядеть правильно, скопируйте выражение и вставьте его в свой код, не забывая также переносить флаги.

Советы и лучшие практики

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

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

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

JavaScript, через собственный движок RegExp браузера. Синтаксис близок к модулю re PCRE и Python, но не идентичен. Именованные группы, просмотр вперед, просмотр назад и экранирование свойств Юникода — все это работает в современных браузерах.

Почему мой шаблон соответствует гораздо большему количеству текста, чем я ожидал?

Потому что квантификаторы по умолчанию жадные. Что-то вроде .* или [0-9]+ будет потреблять столько, сколько возможно, сохраняя при этом соответствие остальной части шаблона. Добавьте вопросительный знак, чтобы сделать его ленивым, так что .*? или [0-9]+? останавливается при первой же возможности.

Почему я получаю только один результат?

Глобальный флаг выключен. Без g движок возвращает первое совпадение и останавливается. Переключите g, чтобы собрать все совпадения во входных данных.

Почему мой якорь не работает на второй линии?

По умолчанию привязки курсора и доллара относятся к началу и концу всей строки, а не к каждой строке. Включите флаг m, чтобы они учитывали линии.

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

Нет. Сопоставление происходит в вашем браузере с помощью встроенного объекта RegExp. Ничего не загружается, поэтому можно смело вставлять реальные строки лога или фрагменты конфигурации.

Могу ли я использовать это для проверки ввода в форме?

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

Сопутствующие инструменты