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

Тестируйте регулярные выражения JavaScript на образцах текста прямо в вашем браузере.

Шаблон
Флаги
Строка для проверки
Подсвеченные совпадения
Введите шаблон для тестирования.

Ваш шаблон и текст тестируются прямо в браузере. Данные не отправляются на BroBroGo.

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

Безопасно ли вставлять сюда мой текст?

Да. Поиск совпадений происходит полностью в вашем браузере — текст не отправляется на серверы BroBroGo.

Что означают флаги g/i/m/s?

g находит все совпадения вместо только первого. i игнорирует регистр символов. m заставляет ^ и $ соответствовать началу и концу каждой строки, а не всей строки целиком. s позволяет точке (.) соответствовать в том числе символам перевода строки.

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

Некоторые шаблоны вызывают катастрофический возврат (catastrophic backtracking) — движок перебирает экспоненциальное количество комбинаций, что может заморозить вкладку браузера. Этот инструмент прерывает поиск совпадений через 2 секунды, чтобы страница оставалась отзывчивой. Попробуйте упростить вложенные повторения, например (a+)+.

Принципы работы и возможности инструмента

Онлайн-инструмент «Тестер регулярных выражений (Regex)» предназначен для проверки регулярных выражений JavaScript на образцах текста непосредственно в веб-браузере. При вводе регулярного выражения и тестируемой строки инструмент мгновенно подсвечивает найденные совпадения и группы захвата, что позволяет наглядно анализировать поведение созданного шаблона при различных входных данных.

В процессе работы пользователь взаимодействует со следующими элементами интерфейса:

  • Шаблон: поле для ввода регулярного выражения. В качестве примера по умолчанию используется шаблон \d+.
  • Флаги: переключатели специальных режимов сопоставления (g, i, m, s).
  • Строка для проверки: текстовое поле, куда вводится анализируемый текст. В качестве подсказки в поле отображается текст «Вставьте или введите текст для проверки регулярного выражения».

Результаты обработки выводятся на экран в реальном времени и включают в себя:

  • Подсвеченные совпадения: исходный текст, в котором цветом выделены все найденные соответствия.
  • Совпадения: структурированный список всех найденных результатов. Для каждого совпадения отображаются входящие в него захваченные группы в формате «Группа {n}».
  • Совпадений: {count}: общее количество обнаруженных совпадений.
  • Символы: информационный показатель, отображающий длину обрабатываемого текста.

Влияние флагов регулярных выражений JavaScript

Флаги регулярных выражений существенно меняют логику работы поискового движка JavaScript. В данном инструменте доступны четыре основных флага:

  1. g (Global) — активирует глобальный поиск. Если данный флаг не выбран, движок возвращает только первое найденное совпадение. При включении флага поиск продолжается по всему тексту для нахождения всех возможных совпадений.
  2. i (Case insensitive) — отключает чувствительность к регистру символов. Шаблон начинает находить соответствия независимо от того, написаны ли буквы в тексте как строчные или прописные.
  3. m (Multiline) — включает многострочный режим. В этом режиме метасимволы начала строки ^ и конца строки $ привязываются к началу и концу каждой отдельной строки внутри текста, а не только к самому началу и концу всего переданного текста.
  4. s (Dot matches newline) — изменяет поведение метасимвола «точка». По умолчанию точка соответствует любому одиночному символу, кроме символа перевода строки. Активация флага s позволяет точке соответствовать в том числе и символам переноса строки.

Правила обработки данных и ограничения

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

  • Отсутствие совпадений: если введенный шаблон не находит соответствий в предоставленном тексте, на экране отображается сообщение «Нет совпадений.».
  • Ошибки синтаксиса: при вводе некорректного с точки зрения JavaScript регулярного выражения инструмент выводит предупреждение «Некорректное регулярное выражение.».
  • Ограничение на количество результатов: при активированном глобальном флаге g инструмент находит и обрабатывает максимум 1 000 совпадений. При этом в интерфейсе генерируется не более 100 карточек совпадений. Если количество результатов превышает установленный лимит, выводится уведомление «Показаны первые {max} результатов.».
  • Очистка данных: пользователь может мгновенно сбросить все введенные данные и результаты тестирования, нажав кнопку «Очистить». После этого инструмент переходит в исходное состояние и выводит системное сообщение «Очищено.».

Проблема катастрофического возврата и оптимизация

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

Для предотвращения зависания системы в инструменте реализован защитный тайм-аут. Если выполнение поискового шаблона занимает более 2 секунд, процесс принудительно прерывается. В этом случае на экран выводится предупреждение: «Выполнение этого шаблона занимает слишком много времени — возможно, из-за катастрофического возврата. Попробуйте упростить его.». Для оптимизации таких выражений следует избегать избыточной вложенности квантификаторов и делать условия сопоставления более конкретными.

Конфиденциальность и безопасность процесса тестирования

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

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

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

Безопасно ли вставлять сюда мой текст?
Да. Поиск совпадений происходит полностью в вашем браузере — текст не отправляется на серверы BroBroGo.

Что означают флаги g/i/m/s?
g находит все совпадения вместо только первого. i игнорирует регистр символов. m заставляет ^ и $ соответствовать началу и концу каждой строки, а не всей строки целиком. s позволяет точке (.) соответствовать в том числе символам перевода строки.

Почему появилось сообщение о том, что обработка шаблона занимает слишком много времени?
Некоторые шаблоны вызывают катастрофический возврат (catastrophic backtracking) — движок перебирает экспоненциальное количество комбинаций, что может заморозить вкладку браузера. Этот инструмент прерывает поиск совпадений через 2 секунды, чтобы страница оставалась отзывчивой. Попробуйте упростить вложенные повторения, например (a+)+.