Проверяйте регулярные выражения в реальном времени. Подсветка совпадений и группы.
g глобальныйi без регистраm многострочныйs dotAllВо многих движках по умолчанию .* жадный: он съедает максимум символов, а потом движок откатывается назад, чтобы найти совпадение остального шаблона. Отсюда сюрпризы вроде «захватил всю строку до последней кавычки». Ленивая форма .*? останавливается при первом успехе — но и она не волшебная, если дальше в шаблоне есть неоднозначность.
Тестер с подсветкой групп помогает увидеть, какой именно кусок строки съел квантификатор, вместо чтения десяти страниц документации.
^ и $ зависят от режима многострочности.\b ломаются на кириллице в зависимости от движка и Unicode.i, m, s меняют смысл точки и регистра.Гоняйте на тестере не только «счастливый» пример, но и пустую строку, строку без совпадения и очень длинную строку.
Скобки (...) создают группу захвата — удобно для извлечения частей в коде. Цена — память и скорость на длинных текстах. Некоторые движки поддерживают (?:...) без захвата для чистой группировки альтернатив.
Именованные группы (?<name>...) улучшают читаемость в Python и PCRE, но синтаксис чуть отличается в .NET и Java.
\1 в шаблоне и $1 в замене — разные контексты.(?=) не двигает «курсор», что полезно для проверок формата.Онлайн-тестер экономит цикл «написал в коде — запустил билд — увидел ошибку».
Буква «ё» и «е», визуально похожие символы из разных скриптов, ломают наивные фильтры. Unicode property escapes \p{L} поддерживаются в JavaScript только с флагом u. NFC vs NFD влияет на совпадение «одной буквы» из двух кодпоинтов.
Если ваш тестер не совпадает с продакшеном, сравните версии движка: браузер, Rust regex, RE2.
\p{Nd} вместо [0-9].\b{g} есть не везде — проверяйте.u в JS включает правильную работу . с плоскостями Unicode.Кладите в поле теста реальные логи с эмодзи и RTL — редкие баги всплывают именно там.
Регулярное выражение из пользовательского ввода на сервере без таймаута — классический вектор ReDoS. Ограничивайте длину строки, время выполнения и класс движка (линейный по времени, где возможно).
На клиенте бесконечный цикл в regex всё равно повесит вкладку — не гоняйте мегабайты текста в синхронном UI-потоке.
Тестер на сайте предназначен для обучения и отладки, а не для публичного сервиса исполнения произвольных regex на ваших данных.
Проверяйте regex на тексте в реальном времени. Совпадения подсвечиваются зелёным. Показываются группы и количество совпадений. Поддерживаются флаги g, i, m, s.
Email: \b[\w.]+@[\w.]+\.\w+\b. Телефон: \+7[\d\s()-]{10,}. IP: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}. Дата: \d{2}\.\d{2}\.\d{4}.