Тестировщик Regex
tools/development.regex-tester.editor.flags_hint
Почему стоит использовать наш тестировщик Regex?
Регулярные выражения (regex) — мощные инструменты сопоставления шаблонов, используемые почти в каждом языке программирования. Отладка regex может быть сложной — один неправильный символ полностью меняет поведение поиска. Наш тестировщик в реальном времени выделяет совпадения по мере ввода, показывает детали групп захвата и поддерживает все флаги JavaScript, что делает его самым быстрым способом создания и проверки регулярных выражений.
Выделение в реальном времени
Совпадения выделяются мгновенно при каждом нажатии клавиши — не нужно нажимать кнопками
Детали групп захвата
Просматривайте все группы захвата, их индексы и совпадающие значения для каждого результата
Полная поддержка флагов
Активируйте флаги g, i, m, s, u, y независимо и наблюдайте их эффект
Как тестировать Regex за 3 шага
Введите шаблон
Введите регулярное выражение в поле шаблона (без косых черт)
Выберите флаги
Активируйте g (глобальный), i (без учёта регистра), m (многострочный) и другие флаги по необходимости
Вставьте тестовый текст
Введите текст для тестирования — совпадения выделяются автоматически
Распространённые случаи использования Regex
Валидация форм
Валидируйте email-адреса, телефонные номера, URL, почтовые индексы и пользовательские форматы
Поиск и замена
Ищите и заменяйте шаблоны в редакторах кода, файлах журналов и конвейерах обработки текста
Анализ файлов журналов
Извлекайте структурированные данные (IP, временные метки, коды ошибок) из неструктурированных журналов
Санитарная обработка ввода
Удаляйте или заменяйте опасные символы в пользовательских данных перед сохранением или отображением
Лучшие практики Regex
✓ Используйте якоря для точных совпадений
Используйте ^ и $ для привязки шаблонов к началу и концу строки, избегая нежелательных частичных совпадений
✓ Предпочитайте незахватывающие группы
Используйте (?:...) вместо (...) когда не нужно захватывать группу — улучшает производительность
✓ Экранируйте специальные символы
Символы . * + ? ( ) [ ] { } | ^ $ \ имеют особое значение — экранируйте их с \ для буквальных совпадений
✓ Тестируйте граничные случаи
Всегда тестируйте с пустыми строками, Unicode-символами, очень длинным вводом и граничными условиями
❓ Часто задаваемые вопросы
Какой диалект regex использует этот тестировщик?
Этот тестировщик использует встроенный движок RegExp JavaScript, который следует стандарту ECMAScript. Он поддерживает все функции JS: проверки вперёд, проверки назад (ES2018+), именованные группы захвата и символы свойств Unicode.
Какова разница между флагами g и m?
Флаг g (глобальный) находит все совпадения в строке, а не только первое. Флаг m (многострочный) заставляет ^ и $ совпадать с началом/концом каждой строки, а не всей строки. Они служат разным целям и могут комбинироваться.
Как сопоставить буквальную точку или звёздочку?
Экранируйте их обратной косой чертой: \. совпадает с буквальной точкой, \* с буквальной звёздочкой. Внутри класса символов [ ] большинство специальных символов теряют своё значение, кроме ] \ ^ -.
Почему мой regex совпадает со слишком большим количеством текста?
Вероятно, вы используете жадные квантификаторы. Квантификаторы * и + по умолчанию жадные и совпадают с как можно большим количеством текста. Добавьте ? чтобы сделать их ленивыми: *? или +? совпадают с как можно меньшим количеством.