Тестер регулярных выражений
Тестируйте регулярки вживую — подсветка совпадений, группы и замена
\d \w \sцифра, символ слова, пробел^ $ \bначало, конец, граница слова* + ? {n,m}0+, 1+, необязательно, диапазон(…) (?:…) (?<name>…)захват, без захвата, именованная[abc] [^abc] [a-z]один из, ни один из, диапазонa|b (?=…) (?!…)выбор, опережающая проверкаКатастрофическое обратное отслеживание — под контролем
Вложенные квантификаторы, такие как (a+)+$, могут заставить движок регулярных выражений перебирать экспоненциально большое количество путей — это классическая ловушка ReDoS:
- Этот тестер оборачивает ваш шаблон в воркер с ограничением по количеству шагов; если сопоставление выходит за пределы этого лимита, оно прерывается и результат отображается явно, а не приводит к зависанию вкладки.
- Если вы видите сообщение о прерывании, значит, шаблон опасен и в продакшене — никакие таймауты на сервере не спасут от квадратичного (или хуже) цикла в движке.
- Часто помогающие исправления: устранение неоднозначности во вложенных группах, жёсткая анкеровка с обоих концов шаблона, замена жадных вложенных конструкций на классы символов.
Как этот тестер безопасно выполняет шаблоны
Подсветка совпадений в реальном времени
Шаблон, тестовый текст и замена обновляются по мере ввода: совпадения светятся чередующимися цветами, счётчик обновляется, а предпросмотр замены применяет $1 и именованные группы вида $<name>.
Группы с позициями
Каждое совпадение раскрывается в нумерованные и именованные группы захвата со значениями и позициями символов — до запуска в прод видно, какая часть шаблона что захватила.
Флаги, библиотека, справочник
Флаги g, i, m, s, u и y — в один клик, шесть готовых шаблонов покрывают email, URL, IPv4, даты, hex-цвета и телефоны, а справочник синтаксиса разбирает якоря, квантификаторы, группы и lookaround.
Частые вопросы
Какой диалект регулярных выражений используется?
Встроенный в браузер движок JavaScript (ECMAScript). Большая часть синтаксиса совпадает с PCRE, но есть отличия — например, нет притяжательных квантификаторов, а ретроспективная проверка требует современного браузера. Шаблоны, протестированные здесь, ведут себя точно так же, как в JS-коде.
Отправляется ли мой текст куда-либо?
Нет. Поиск, группировка и замена выполняются локально с помощью нативного RegExp вашего браузера, поэтому шаблоны и тестовые данные не покидают страницу. Работает и офлайн.
Может ли регулярка «подвесить» страницу?
Патологический шаблон (катастрофический бэктрекинг) может работать медленно, но только в вашей вкладке. Мы продвигаемся за совпадения нулевой длины и ограничиваем результаты 10 000, чтобы интерфейс оставался отзывчивым. Для длинного ввода предпочитайте конкретные шаблоны вложенным квантификаторам вроде (a+)+.
Почему мой шаблон «зависает» на одних входных данных, но работает мгновенно на других?
Стоимость обратного отслеживания зависит от формы входных данных, а не только от их длины: строка вида aaaa...b при сопоставлении с регулярным выражением (a+)+b приводит к экспоненциальному росту времени выполнения, тогда как строка aab обрабатывается мгновенно. Злоумышленники специально конструируют именно такие патологические строки, поэтому перед выпуском любого регулярного выражения, доступного пользователям, обязательно протестируйте его на длинных последовательностях одинаковых символов.
Похожие инструменты
Что такое тестер регулярных выражений?
Регулярные выражения — шаблоны для поиска и замены текста — относятся к самым мощным и одновременно самым ошибкоопасным инструментам программирования. Сдвинутый на символ бэкслэш меняет результат поиска, а шаблон, верный на бумаге, часто преподносит сюрпризы на реальных данных. Этот тестер показывает вживую, что шаблон делает на самом деле: каждое совпадение подсвечивается в тестовом тексте, нумерованные и именованные группы захвата раскладываются с указанием позиций, а предпросмотр замены показывает результат с синтаксисом $1 или $
Что умеет этот инструмент
- 🔦 Живая подсветка каждого совпадения по мере ввода
- 🧩 Разбор нумерованных и именованных групп захвата с позициями
- 🔁 Предпросмотр замены с синтаксисом $1 и $
- 🚩 Флаги: g, i, m, s, u, y
- 📚 Библиотека шаблонов: email, URL, IPv4, дата, цвет, телефон
- 📖 Встроенная таблица-шпаргалка по синтаксису
Когда пригодится
- Когда пишете шаблон валидации для поля формы
- Когда выясняете, почему регулярка находит слишком много или слишком мало
- Когда строите скрипт обработки текста на основе групп захвата
- Когда проверяете чужой шаблон из сообщества перед использованием
Конфиденциальность: шаблон и тестовый текст вычисляются полностью в браузере — ничего не загружается и не логируется. Бесплатно.