Тестер Регулярных Выражений
FreeПроверяйте регулярное выражение на тексте с помощью встроенного движка регулярных выражений JavaScript, с подсветкой совпадений в реальном времени, полным разбором пронумерованных и именованных захватывающих групп и дополнительным режимом замены, предварительно показывающим результат String.replace().
Работает полностью в вашем браузере с использованием встроенного движка регулярных выражений JavaScript. Ничего никуда не загружается.
Выделенные совпадения
Совпадения
Недавняя активность
Видно всем. Последние 20 использований от всех посетителей, сначала новые.
Tested a pattern (50 chars, flags: g) -- 2 match(es)
2 часа назад
Tested a pattern (50 chars, flags: g) -- 2 match(es)
2 часа назад
Tested a pattern (50 chars, flags: g) -- 2 match(es)
2 часа назад
Tested a pattern (50 chars, flags: g) -- 2 match(es)
2 часа назад
Tested a pattern (50 chars, flags: (none)) -- 1 match(es)
2 часа назад
Tested a pattern (50 chars, flags: g) -- 2 match(es)
2 часа назад
Что делает этот инструмент
Этот инструмент проверяет регулярное выражение на блоке текста с помощью встроенного движка регулярных выражений JavaScript браузера. Совпадения выделяются непосредственно в тексте, каждое совпадение разбивается на пронумерованные и именованные захватывающие группы, а дополнительный режим замены показывает именно то, что произвёл бы String.replace() с вашим шаблоном и текстом замены.
Как это работает
Ваш шаблон и выбранные флаги компилируются в настоящий объект RegExp JavaScript. Когда флаг Global включён, инструмент многократно вызывает exec() для текста, переходя за каждое совпадение (и на один символ вперёд при пустых совпадениях, чтобы избежать бесконечного цикла), пока не перестанут находиться совпадения; без Global exec() вызывается один раз. Выделение строится путём последовательного прохода по совпадениям и обёртывания каждой совпавшей подстроки в маркер, не затрагивая окружающий текст. Режим замены вызывает собственный метод replace() текста с вашим скомпилированным шаблоном и строкой замены, поэтому результат в точности совпадает с тем, что произвёл бы ваш собственный код JavaScript.
Какие проблемы решает
- Отладка того, почему регулярное выражение в вашем реальном коде JavaScript не совпадает с ожидаемым, с использованием точно того же движка.
- Предварительный просмотр операции поиска и замены перед её выполнением на реальных данных.
- Понимание того, какой части шаблона соответствует каждая захватывающая группа, видя захваченный текст каждой группы одновременно.
- Изучение флагов регулярных выражений на практике, включая и выключая их и наблюдая, как список совпадений меняется мгновенно.
Часто задаваемые вопросы
›Какой диалект регулярных выражений использует этот инструмент?
Этот инструмент выполняет ваш шаблон через собственный встроенный движок RegExp браузера JavaScript, поэтому он в точности соответствует тому, как регулярное выражение будет вести себя в реальном коде JavaScript, в Node.js или в валидаторе форм на стороне браузера, а не другому диалекту, такому как PCRE (PHP, у Python с модулем re есть свои особенности) или регулярные выражения .NET, которые могут отличаться в поддержке lookbehind, синтаксисе именованных групп и некоторых других деталях.
›Что на самом деле меняют флаги g, i, m, s и u?
g (global) находит каждое совпадение вместо остановки на первом; i делает сопоставление нечувствительным к регистру; m заставляет ^ и $ соответствовать началу и концу каждой строки, а не только всей строки целиком; s (dotall) заставляет . также соответствовать символам переноса строки, чего он иначе не делает; u включает полный режим Unicode, который влияет на то, как обрабатываются классы символов и суррогатные пары (символы за пределами базовой многоязычной плоскости, например многие эмодзи).
›Почему некоторые захватывающие группы отображаются как отсутствующие, хотя в моём шаблоне есть скобки?
Захватывающая группа, являющаяся частью альтернативы (A|B), захватывает только тогда, когда эта ветвь альтернативы действительно совпала, поэтому группа из неиспользованной ветви сообщается как не участвующая, это стандартное поведение регулярных выражений, а не ошибка в конкретном совпадении.
›Как режим замены интерпретирует мой текст замены?
Режим замены использует собственный синтаксис подстановки String.replace() из JavaScript: $1, $2 и так далее вставляют пронумерованную захватывающую группу, $<name> вставляет именованную группу, $& вставляет всё совпадение целиком, а $$ вставляет буквальный знак доллара, точно так же, как это происходит в реальном коде JavaScript.
›Мой шаблон совпадает только один раз, хотя я ожидаю несколько совпадений, почему?
Убедитесь, что включён флаг Global (g); без него и список совпадений, и String.replace() действуют только на первое найденное совпадение, что является стандартным поведением регулярных выражений JavaScript, а не ограничением этого инструмента.
Похожие инструменты
Текст
Генератор Cron-выражений
Создавайте и анализируйте cron-выражения с помощью редактора полей в реальном времени, описания простыми словами и следующих 5 реальных запусков. Поддерживает шаблоны, сокращения @ и необязательный 6-полевой вариант с секундами.
FreeТекст
Инструмент шифра Цезаря
Шифруйте или дешифруйте текст с помощью классического шифра Цезаря, с таблицей сопоставления A-Z, списком перебора, диаграммой частоты букв и быстрым переходом ROT13.
FreeТекст
Генератор ASCII-арта
Превратите введённый текст или загруженное изображение в ASCII-арт. Выберите стиль шрифта или шкалу символов, сохраните цвет и экспортируйте как обычный текст или PNG.
FreeТекст
Редактор Секретов/Конфигурации
Вставьте файл .env или конфигурации, и ключи API, пароли и токены автоматически маскируются рядом с конфиденциальными именами ключей или известными форматами секретов (AWS, GitHub, Stripe, JWT, PEM). Затем безопасно вставлять в чат-ИИ или отчет об ошибке.
FreeТекст
Генератор записи DMARC
Создавайте DMARC DNS-запись из понятных полей, с пресетами поэтапного внедрения и индикатором уровня применения в реальном времени.
FreeТекст
Конвертер Excel в HTML-таблицу
Вставьте из Excel или Google Таблиц, либо загрузите файл .xlsx/.xls/.csv, и получите чистую HTML-таблицу с живым предпросмотром, опциональным оформлением и выравниванием числовых столбцов.
FreeТекст
Генератор хешей (MD5/SHA1/SHA256/SHA512)
Хешируйте текст или файл в MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160 и CRC32 одновременно, с полем сравнения с известной контрольной суммой.
FreeТекст
Генератор htpasswd
Создайте настоящий файл Apache .htpasswd с bcrypt или SHA, проверенный побайтово по сравнению с официальным инструментом командной строки htpasswd, с поддержкой нескольких пользователей одновременно.
Комментарии (0)
Понравился инструмент? Оставьте комментарий, поделитесь советом или расскажите, как нам его улучшить.
Пока нет комментариев. Будьте первым, кто поделится мнением!