Тестировщик Regex

Тестируйте регулярные выражения в реальном времени с выделением совпадений, флагами и деталями групп захвата

Поделиться:

Тестировщик Regex

/ /

tools/development.regex-tester.editor.flags_hint

Почему стоит использовать наш тестировщик Regex?

Регулярные выражения (regex) — мощные инструменты сопоставления шаблонов, используемые почти в каждом языке программирования. Отладка regex может быть сложной — один неправильный символ полностью меняет поведение поиска. Наш тестировщик в реальном времени выделяет совпадения по мере ввода, показывает детали групп захвата и поддерживает все флаги JavaScript, что делает его самым быстрым способом создания и проверки регулярных выражений.

Выделение в реальном времени

Совпадения выделяются мгновенно при каждом нажатии клавиши — не нужно нажимать кнопками

🔍

Детали групп захвата

Просматривайте все группы захвата, их индексы и совпадающие значения для каждого результата

🚩

Полная поддержка флагов

Активируйте флаги g, i, m, s, u, y независимо и наблюдайте их эффект

Как тестировать Regex за 3 шага

1

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

Введите регулярное выражение в поле шаблона (без косых черт)

2

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

Активируйте g (глобальный), i (без учёта регистра), m (многострочный) и другие флаги по необходимости

3

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

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

Распространённые случаи использования Regex

Валидация форм

Валидируйте email-адреса, телефонные номера, URL, почтовые индексы и пользовательские форматы

🔍

Поиск и замена

Ищите и заменяйте шаблоны в редакторах кода, файлах журналов и конвейерах обработки текста

⚙️

Анализ файлов журналов

Извлекайте структурированные данные (IP, временные метки, коды ошибок) из неструктурированных журналов

🔒

Санитарная обработка ввода

Удаляйте или заменяйте опасные символы в пользовательских данных перед сохранением или отображением

Лучшие практики Regex

✓ Используйте якоря для точных совпадений

Используйте ^ и $ для привязки шаблонов к началу и концу строки, избегая нежелательных частичных совпадений

✓ Предпочитайте незахватывающие группы

Используйте (?:...) вместо (...) когда не нужно захватывать группу — улучшает производительность

✓ Экранируйте специальные символы

Символы . * + ? ( ) [ ] { } | ^ $ \ имеют особое значение — экранируйте их с \ для буквальных совпадений

✓ Тестируйте граничные случаи

Всегда тестируйте с пустыми строками, Unicode-символами, очень длинным вводом и граничными условиями

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

Какой диалект regex использует этот тестировщик?

Этот тестировщик использует встроенный движок RegExp JavaScript, который следует стандарту ECMAScript. Он поддерживает все функции JS: проверки вперёд, проверки назад (ES2018+), именованные группы захвата и символы свойств Unicode.

Какова разница между флагами g и m?

Флаг g (глобальный) находит все совпадения в строке, а не только первое. Флаг m (многострочный) заставляет ^ и $ совпадать с началом/концом каждой строки, а не всей строки. Они служат разным целям и могут комбинироваться.

Как сопоставить буквальную точку или звёздочку?

Экранируйте их обратной косой чертой: \. совпадает с буквальной точкой, \* с буквальной звёздочкой. Внутри класса символов [ ] большинство специальных символов теряют своё значение, кроме ] \ ^ -.

Почему мой regex совпадает со слишком большим количеством текста?

Вероятно, вы используете жадные квантификаторы. Квантификаторы * и + по умолчанию жадные и совпадают с как можно большим количеством текста. Добавьте ? чтобы сделать их ленивыми: *? или +? совпадают с как можно меньшим количеством.