Regex Tester — онлайн-отладчик регулярных выражений с подсветкой совпадений в реальном времени. Введите паттерн, тестовую строку — и сразу видите все matches, захваченные группы, именованные группы `(?<name>...)`, lookahead `(?=...)`, lookbehind `(?<=...)` и отрицательные варианты. Работает с JavaScript-совместимым синтаксисом (ECMAScript), с возможностью переключения на PCRE-режим.
Инструмент незаменим для отладки регулярок, которые вытаскивают email из логов, парсят CSV, валидируют формы, ищут шаблоны в коде. Поддерживает флаги g, i, m, s, u, y. Показывает пошаговое объяснение паттерна (что делает каждая часть) и предупреждает о catastrophic backtracking на опасных выражениях.
Тестирует на больших текстах (до 5 МБ), показывает время выполнения, количество совпадений. Есть библиотека готовых регулярок: email, URL, IPv4/IPv6, телефон, пароль, дата, UUID. Обработка локальная — тексты не отправляются на сервер.
Бесплатный виджет с бэклинком на ваш сайт
Загрузка…
Введите regex-паттерн в поле паттерна.
Добавьте флаги: g (global), i (insensitive), m (multiline), s, u.
Вставьте тестовую строку или лог — совпадения подсветятся сразу.
Разверните объяснение, чтобы увидеть, как работает каждая часть.
При необходимости перейдите в режим replace и укажите шаблон замены.
Все matches, группы и именованные группы подсвечены разными цветами.
Переключение диалектов. Подсказка, какие возможности поддерживает JS, а какие только PCRE.
Построчное описание регулярки с подсветкой соответствующей части.
Предупреждение о catastrophic backtracking (`(a+)+$` на длинной строке).
Email, URL, IP, телефон, дата, UUID, пароль — 40+ проверенных паттернов.
Режим replace с backreferences ($1, $<name>) и экспорт в JS, Python, Go.
Для лучших результатов используйте современный браузер (Chrome, Firefox, Edge)
Все файлы обрабатываются локально в вашем браузере для максимальной безопасности
Сохраняйте результат сразу после обработки
Попробуйте разные настройки для оптимального результата
По умолчанию квантификаторы `*`, `+`, `?` — жадные: захватывают максимум. Добавьте `?` после квантификатора: `.*?`, `.+?` — станет ленивым, возьмёт минимум. Пример: `<.*>` на `<a><b>` даст `<a><b>`, а `<.*?>` — только `<a>`.
Именованные группы `(?<year>\d{4})-(?<month>\d{2})` читаемее и устойчивее: при изменении паттерна номера групп могут сместиться, а имена — нет. В замене используйте `$<year>` вместо `$1`.
PCRE (Perl, PHP, Python) поддерживает рекурсию `(?R)`, условные выражения `(?(1)yes|no)`, \K, возможность `\w` включать юникод по умолчанию. JavaScript проще: lookbehind появился только в ES2018, рекурсии нет. В спорных местах мы показываем предупреждение.
Это проверки без захвата: `(?=X)` — совпадение если дальше есть X, `(?!X)` — если нет. `(?<=X)` и `(?<!X)` — то же, но «до». Пример: `\d+(?= USD)` найдёт число, только если за ним USD, но само USD не захватит.
Это catastrophic backtracking. Причина — вложенные квантификаторы: `(a+)+`, `(.*)*`. Перепишите однозначно: `a+` вместо `(a+)+`. Используйте possessive-квантификаторы `(?>...)` в PCRE. Наш тестер предупреждает о таких паттернах заранее.
Да, до 5 МБ напрямую. Для больших файлов используйте режим «stream» — совпадения обрабатываются по частям, чтобы не подвесить вкладку. Показывается время выполнения и количество matches.
Создайте QR-код из текста, URL или данных