Перейти к основному содержимому
LibraTool logoLibraTool

Тестировщик регулярных выражений — бесплатно

Проверяйте регулярные выражения на тексте в реальном времени. Просматривайте выделенные совпадения, группы и детали совпадений.

Работает офлайн после загрузки
//g
Флаги:

g Глобально — найти все совпадения · i Без учёта регистра · m Многострочно — ^ и $ совпадают с границами строк · s Точка совпадает с новой строкой · u Юникод — полное совпадение кодовых точек · y Липкий — каждое совпадение должно начинаться там, где закончилось предыдущее

Примеры:

Совпадения

The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs.Введите шаблон выше, чтобы увидеть выделенные совпадения.

Частые применения

  • Тестирование Regex для проверки формыПишите и тестируйте регулярные выражения для проверки электронных писем, номеров телефонов, почтовых индексов и других входных данных форм.
  • Анализ журналов сервера с помощью RegexПишите шаблоны regex для извлечения временных меток, IP-адресов, кодов ошибок и структурированных данных из файлов журнала.
  • Извлечение и замена текста с помощью RegexИспользуйте regex для поиска шаблонов, извлечения данных или подготовки операций поиска и замены перед их запуском в редакторе.
  • Тестирование шаблонов маршрутизации URLПишите и тестируйте шаблоны regex для правил маршрутизации URL в Express, Nginx и Apache.
  • Извлечение данных с помощью RegexСоздавайте и тестируйте шаблоны для извлечения структурированных данных из неструктурированного текста, HTML или markdown.

Как это работает

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

  1. 1
    Шаблон скомпилирован в RegExp
    По мере ввода инструмент вызывает new RegExp(pattern, flags), используя переключённые вами флаги (g, i, m, s, u, y). Если шаблон синтаксически невалиден, перехваченное сообщение об ошибке немедленно показывается инлайн — кнопка отправки не нужна.
  2. 2
    Цикл exec() собирает совпадения
    Движок запускает re.exec(text) в цикле, записывая индекс символа, длину, полное значение, пронумерованные группы захвата и любые именованные группы каждого совпадения. Предел безопасности в 10 000 совпадений предотвращает неконтролируемые шаблоны, а защита от совпадения нулевой длины продвигает lastIndex, чтобы избежать бесконечных циклов.
  3. 3
    Текст разбит на подсвеченные фрагменты
    Функция buildSegments проходит по смещениям совпадений и разрезает исходный текст на чередующиеся несовпавшие и совпавшие сегменты. Совпавшие фрагменты оборачиваются в элементы <mark>, стилизованные циклическими цветами, так что перекрывающиеся или соседние совпадения остаются визуально различимыми.
  4. 4
    Режим замены через String.replace
    Переключение в режим замены напрямую вызывает testText.replace(new RegExp(pattern, flags), replacement), что означает, что обратные ссылки вроде $1 и $<name> работают точно так же, как в коде JavaScript. Текст результата показывается вживую и может быть скопирован в буфер обмена.

Похожие инструменты

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