QuickATools

Инструменты разработчика · Free browser tool

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

Тестируйте и отлаживайте регулярные выражения в реальном времени с подсветкой синтаксиса, группами захвата и переключателями флагов.

Regular expression

Pattern between slashes · flags toggle on the right.

g
g Global — find all matchesi Ignore casem Multiline — ^/$ per line
Valid pattern/\b(\w+)@(\w+)\.(\w+)\b/g3 matches

Test string

Paste the text you want to match against.

107 characters

Highlighted matches

Matching regions are marked in amber below.

Contact us at hello@example.com or support@quickatools.com. Also try BAD@EMAIL (no TLD) and alice@site.org.

Match details

3 results
#MatchIndex$1$2$3
1hello@example.com1431helloexamplecom
2support@quickatools.com3558supportquickatoolscom
3alice@site.org92106alicesiteorg

Frequently Asked Questions

Что на самом деле делают флаги g, i и m?

Флаг g (global) находит все совпадения в строке, а не останавливается после первого. Флаг i (ignore case) делает шаблон нечувствительным к регистру, поэтому /hello/i совпадает с "Hello" и "HELLO". Флаг m (multiline) меняет поведение ^ и $ — при включённом m они соответствуют началу и концу каждой строки, а не только всей строки целиком. Переключайте их прямо в инструменте, чтобы сразу увидеть разницу.

Чем совпадение отличается от группы захвата?

Совпадение (match) — это вся подстрока, которая удовлетворила шаблону. Группы захвата — это части этого совпадения, которые вы намеренно «сохранили», обернув фрагменты шаблона в скобки: например, /(\d{4})-(\d{2})-(\d{2})/ для "2026-08-07" даёт одно совпадение ("2026-08-07") и три группы ($1 = "2026", $2 = "08", $3 = "07"). Группы захвата нужны в заменах и при извлечении структурированных полей из текста.

Чем движок RegExp в JavaScript отличается от других диалектов regex?

JavaScript использует диалект на базе ECMAScript: поддерживаются lookaround, именованные группы и Unicode property escapes (с флагом u), но нет части возможностей PCRE или .NET — например, рекурсивных шаблонов или possessive quantifiers. Шаблоны, которые вы проверяете здесь, ведут себя так же, как в браузере или Node.js: если выражение работает в этом инструменте, оно так же сработает в вашем JavaScript-приложении.

Безопасно ли тестировать regex на реальном исходном коде или чувствительных данных?

Да. Компиляция шаблона, поиск совпадений, подсветка и отчёт выполняются локально встроенным движком RegExp браузера — ничего из того, что вы вставляете, не загружается, не логируется и не отправляется на сервер. Можно спокойно отлаживать валидацию форм регистрации, правила разбора логов или regex для редaction на реальных (даже чувствительных) примерах, не раскрывая текст стороннему сервису.

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

Регулярные выражения по природе плотные: пропущенный escape, жадный квантификатор или неверный флаг могут тихо совпасть не с тем (или ни с чем). Отладка вставкой в продакшен-код с перезагрузкой медленная и рискованная. Живой тестер, который подсвечивает каждое совпадение и показывает группы захвата по мере ввода, сжимает цикл обратной связи до миллисекунд — вы видите, что делают ^, $ или вложенная группа, ещё до того, как шаблон попадёт в релиз.

Такая обратная связь важна и для правил с чувствительными данными. Валидаторы форм, шаблоны редaction логов и фильтры контента часто проверяют на реальных примерах — email, телефонах, фрагментах пользовательского ввода. Отправка этого текста в сторонний regex-playground означает доверие их серверу. Этот инструмент ничего не загружает: компиляция, matching, подсветка и отчёт идут через встроенный RegExp браузера.

Поскольку движок — та же реализация ECMAScript, что в браузере и Node.js, шаблон, работающий здесь, ведёт себя так же в вашем JavaScript-приложении — включая влияние флагов g, i и m и нумерацию групп захвата. Используйте янтарную панель подсветки, чтобы заметить лишние совпадения, и таблицу matches, чтобы убедиться, что $1, $2 и остальные извлекают нужные поля.

Нужно привести пример JSON в порядок перед проверкой правила разбора? Возьмите JSON Formatter & Validator. Сначала декодировать токен? Попробуйте Base64 Encode/Decode. Сгенерировать fixture-идентификаторы для тестов? UUID/GUID Generator тоже работает полностью локально, как и этот инструмент.