Тестер Regex

Проверка регулярных выражений на лету движком Rust regex (WebAssembly): подсветка совпадений, группы и именованные группы, флаги i/m/s и сохранение шаблонов.

Введённые данные и файлы остаются в браузере

Флаги

Введите или вставьте текст для проверки шаблона или загрузите пример.

Совпадения

Введите шаблон — совпадения с позициями и группами захвата появятся здесь.

Найдено совпадений

Сохранённые шаблоны

Пока нет сохранённых шаблонов.

ИмяШаблонДействия

Примеры

ИмяШаблонДействия

Сохранить шаблон

На этой странице

Пишите регулярное выражение и сразу видите все совпадения, подсвеченные в тестовом тексте, а ниже — их позиции и группы захвата. Шаблоны выполняет крейт Rust regex, скомпилированный в WebAssembly, поэтому синтаксис и поведение — как в Rust, а не как в JavaScript.

Подробное описание функциональности

Поддерживаются классы символов и Unicode-классы вроде \p{Cyrillic}, жадные и ленивые квантификаторы, альтернация, якоря, границы слова \b, нумерованные группы, именованные группы (?<name>…) или (?P<name>…), незахватывающие группы и встроенные флаги вроде (?i). Опережающие и ретроспективные проверки (look-ahead, look-behind) и обратные ссылки вроде \1 этот движок не поддерживает — инструмент показывает ошибку движка. Взамен время сопоставления растёт линейно с длиной текста, так что шаблоны вроде (a+)+$ не могут подвесить страницу.

Флаги: i — без учёта регистра, m — ^ и $ срабатывают на каждой строке, s — . совпадает и с переводом строки; если снять Глобально, показывается только первое совпадение. Режим Unicode в движке Rust включён всегда, поэтому \w, \d и . совпадают с не-ASCII буквами, цифрами и символами. Позиции — это индексы строки JavaScript (UTF-16, эмодзи занимает 2). В списке показываются первые 50 совпадений, подсчёт останавливается на 10 000.

Всё выполняется локально. Шаблон сохраняется — вместе с именем, флагами и примером текста, в localStorage этого браузера — только когда вы нажимаете Сохранить шаблон. Пять встроенных примеров (email, IPv4-адрес, дата, hex-цвет, URL) загружаются одним нажатием.

Практические примеры

Именованные группы: (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) на тексте Released 2026-10-06, patched 2026-11-02 даёт 2 совпадения; первое — 2026-10-06 в позиции [9-19] с группами year 2026, month 10, day 06.

Альтернация без учёта регистра: error|warn с флагом i на строках ERROR: disk full и Warn: low memory находит ERROR и Warn.

Якоря строк: ^\w+ на строках alpha one и beta two находит только alpha; с флагом m — alpha и beta.

Неподдерживаемый look-ahead: foo(?=bar) отклоняется с ошибкой «look-around, including look-ahead and look-behind, is not supported» — вместо этого ищите foo(bar) и используйте группу.

Как использовать этот инструмент

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

    Наберите выражение в поле Шаблон без обрамляющих слешей. Шпаргалка показывает самые частые токены.

  2. Настройте флаги

    В блоке Флаги отметьте Без учёта регистра, Многострочный или Точка — любой символ; снимите Глобально, чтобы видеть только первое совпадение.

  3. Добавьте тестовый текст

    Вставьте текст в поле Текст — совпадения подсвечиваются прямо при вводе.

  4. Изучите совпадения

    Список Совпадения показывает каждое совпадение с позицией [start-end] и группами захвата.

  5. Сохраните или используйте повторно

    Нажмите Сохранить шаблон, чтобы сохранить выражение, затем Загрузить его из Сохранённые шаблоны или начните с одного из Примеры.

Советы и лучшие практики

  • Шаблоны JavaScript или PCRE с look-around или \1 придётся переписать: захватите окружающий текст группой или проверьте условие в коде.
  • / экранировать не нужно, а точку — нужно: пишите \. для литеральной «.».
  • Встроенные флаги работают и внутри шаблона: (?i)error — то же самое, что error с флагом i.
  • Сохранённые шаблоны хранятся только в этом браузере; очистка данных сайта удаляет их.
  • Окружайте слова \b (\bcolou?r\b), чтобы colours не находилось как colour.