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

Тестирование регулярных выражений с подсветкой совпадений в реальном времени, объяснением токенов и генерацией примеров строк

/ /
0 совпадений
Совпадения будут подсвечены здесь.
Совпадений пока нет.
  • Объяснение шаблона появится здесь.

                

Как использовать

Шаг 1

Введите шаблон

Введите регулярное выражение и выберите нужные флаги.

Шаг 2

Тестировать текст в реальном времени

Просматривайте подсвеченные совпадения и группы захвата в реальном времени.

Шаг 3

Интерпретировать и генерировать

Просмотрите объяснение шаблона и сгенерируйте примеры строк.

Часто задаваемые вопросы

Поддерживает ли тестер регулярных выражений флаги g, i, m, s и u?

Да. В тестере можно включать и отключать флаги global, ignore case, multiline, dotAll, unicode и sticky.

Как работает объяснение регулярного выражения?

Парсер читает ваш шаблон токен за токеном и генерирует объяснения простым языком для якорей, классов, групп и квантификаторов.

Можно ли генерировать примеры строк из регулярного выражения?

Да. Генератор примеров создаёт репрезентативную строку на основе вашего текущего шаблона, чтобы вы могли быстро проверить, что шаблон делает именно то, что задумано.

В чём разница между жадным и ленивым сопоставлением?

Жадный квантификатор, например .*, поглощает как можно больше, а затем выполняет откат; его ленивый двойник .*? останавливается на первом совпадении. На тексте say "hi" bye шаблон "..*" захватывает всю строку, а ".*?" захватывает только hi. По умолчанию квантификаторы жадные — добавьте ?, чтобы сделать любой квантификатор ленивым.

Как работают группы захвата и обратные ссылки?

Скобки захватывают текст: (\d{4})-(\d{2}) на строке 2026-09-19 даёт группу 1 = 2026 и группу 2 = 09, а в шаблоне замены $1 подставляет захваченный текст. Именованные группы вроде (?<year>\d{4}) лучше читаются в сложных шаблонах. JavaScript нумерует группы по их открывающей скобке, начиная с 1 — группа 0 — это всегда всё совпадение.

Когда нужен флаг u (Unicode)?

Добавляйте u, когда шаблон или текст содержат не-ASCII символы: флаг заставляет \w и \d следовать правилам Unicode, включает property escapes вроде \p{L} и \p{Script=Arabic} и считает эмодзи одиночными символами. Без u UTF-16-суррогатная пара может быть разрезана пополам совпадением точки.

Как взаимодействуют ^, $ и флаги m и s?

По умолчанию ^ и $ привязываются ко всей строке, а . пропускает переводы строк. Флаг m (multiline) заставляет ^ и $ совпадать на границе каждой строки, а флаг s (dotAll) позволяет . захватывать и переводы строк. Частый приём при разборе логов — оба флага вместе: /error.*timeout/gms.

Какой диалект регулярных выражений использует этот тестер?

Тестер запускает движок JavaScript в вашем браузере, поэтому следует семантике регулярных выражений ECMAScript (ECMA-262) — тому же движку, который String.prototype.match использует в продакшен-JS. Учтите отличия от PCRE или Python: в JavaScript нет \K и рекурсии, а lookbehind появился только в ES2018. Шаблоны, написанные для Perl или PCRE, могут потребовать небольших правок.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}