Тестер Regex

/ /

Наберите регулярное выражение, вставьте текст для проверки, и тестер запускает шаблон и выводит каждое найденное совпадение. Каждый результат показывает, где начинается совпадение, и содержимое каждой группы захвата, чтобы вы точно видели, что захватил шаблон. Включайте флаги без учёта регистра, многострочный и dotall, чтобы изменить поведение шаблона.

Как протестировать regex

  1. 1

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

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

  2. 2

    Выберите флаги

    Включите `i` (без учёта регистра), `m` (многострочный) или `s` (dotall), чтобы находить так, как вам нужно.

  3. 3

    Вставьте тестовый текст

    Добавьте текст для поиска. Тестер проходит по всему тексту и находит каждое совпадение, а не только первое.

  4. 4

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

    Каждое совпадение показывает свою позицию (offset) в тексте, полное совпадение и каждую нумерованную группу захвата.

Что показывает тестер

Прогон шаблона в голове или быстрым grep скажет, совпадает ли что-то. Тестер также показывает:

  • Каждое совпадение с его позицией. Он всегда ищет по всему тексту и сообщает о каждом совпадении со смещением символа, где оно начинается.
  • Какая группа что захватила. Каждое совпадение разбивается на полное совпадение и нумерованные группы захвата, чтобы вы подтвердили, что (...) захватил именно ожидаемую часть.
  • Что меняют флаги. Включите i, m или s и запустите проверку снова, чтобы увидеть, как без учёта регистра, многострочный или dotall меняют результат.

Флаги простыми словами

Флаг Название Что меняет
i Без учёта регистра A также совпадает с a, и наоборот
m Многострочный ^ и $ совпадают в начале и конце каждой строки, а не только всего текста
s Dotall . также совпадает с символами перевода строки

Поиск всегда глобальный: тестер возвращает каждое совпадение в тексте, поэтому отдельного флага «global» устанавливать не нужно. Шаблоны выполняются на движке PCRE с поддержкой Unicode, поэтому классы вроде \w и \d ведут себя единообразно на международном тексте.

Частые проблемы с regex, которые это помогает заметить

Симптом Обычная причина
Одно огромное совпадение, охватывающее всё .* жадный; используйте .*? или отрицающий класс вроде [^"]*
^ или $ совпадают только один раз Отсутствует флаг m на многострочном тексте
. останавливается на переводах строки Отсутствует флаг s
Группы захвата в неожиданном порядке Вложенные ( смещают номера групп; считайте их слева направо
Шаблон работает медленно Вложенные * или + над перекрывающимися вариантами вызывают сильный откат

Советы для более быстрых и безопасных шаблонов

  • Привязывайте ^, когда совпадение начинается с начала, чтобы движок не сканировал всю строку.
  • Предпочитайте класс символов ([abc]) чередованию (a|b|c); классы быстрее в каждом крупном движке.
  • Замените жадный .* отрицающим классом вроде [^"]*, когда знаете завершающий символ, чтобы не было отката.

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

Он выполняет ваш шаблон с помощью PCRE, движка, встроенного в PHP, с включённым режимом Unicode. Специфичный для PCRE синтаксис, такой как \d, \b и lookaround, работает как ожидается. Если вы будете использовать шаблон в JavaScript, Python или другом языке, проверьте небольшие различия синтаксиса перед выпуском.

Каждое. Тестер всегда ищет по всему тексту, поэтому отдельного флага «global» устанавливать не нужно. Каждое совпадение выводится со своей позицией в тексте.

Да. Каждое совпадение разбивается на полное совпадение и каждую нумерованную группу захвата, чтобы вы подтвердили, какую часть текста захватил каждый (...).

i делает поиск без учёта регистра, m заставляет ^ и $ совпадать на каждой границе строки, а s позволяет . совпадать с переводами строки. Включайте или выключайте их и запускайте проверку снова, чтобы сравнить результаты.

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

Сопутствующие инструменты

Справочная таблица ASCII

Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.

Справочник символов HTML

Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.

Справочник сочетаний клавиш

Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.

Конвертер размера файлов

Преобразуйте значения между байтами, КБ, МБ, ГБ, ТБ и двоичными единицами IEC (KiB, MiB, GiB, TiB), свободно сочетая десятичные и двоичные единицы.

Конвертер CMYK в RGB

Преобразуйте проценты CMYK в приблизительные значения RGB и Hex для быстрого экранного предпросмотра по стандартной формуле.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Инструмент доступен на других языках