∞ConvertForever

Тестер Regex

Напишите регулярное выражение и смотрите, что именно оно находит, вживую в браузере.

Загрузка инструмента…

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

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

Этот тестер использует движок регулярных выражений JavaScript, встроенный в каждый браузер. Это делает его идеальным для тех, кто пишет regex для веб-кода, но стоит помнить о диалекте, потому что шаблоны ведут себя немного иначе в других движках, например в Python или PCRE.

Тестер Regex

Как пользоваться тестером regex

  1. Введите или вставьте текст, в котором нужно искать, в область ввода.
  2. Введите своё регулярное выражение в поле шаблона.
  3. Включите нужные флаги, такие как g, i, m, s или u.
  4. Смотрите, как совпадения подсвечиваются вживую, и следите за счётчиком по мере правок.
  5. Просмотрите группы захвата для каждого совпадения, чтобы убедиться, что шаблон берёт нужные части.

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

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

Группы захвата — частое место, где шаблон тихо ломается. Regex может совпасть с нужным текстом в целом, тогда как группа хватает слишком много или слишком мало, и показ каждой группы отдельно делает эту ошибку очевидной до того, как она попадёт в ваш код.

Понимание флагов

Флаги меняют поведение всего шаблона. Флаг g находит каждое совпадение, а не останавливается на первом, i делает поиск нечувствительным к регистру, а m позволяет якорям начала и конца строки применяться к каждой строке, а не ко всему тексту.

Флаг s, иногда называемый dotall, позволяет точке совпадать и с символами перевода строки, что удобно для шаблонов, охватывающих несколько строк. Флаг u включает полную обработку Unicode. Переключайте их здесь, и подсветка совпадений перерисовывается, так что вы прямо видите эффект каждого флага.

Диалект regex JavaScript имеет значение

Это честная оговорка, о которой стоит помнить. Инструмент запускает движок regex JavaScript, поэтому то, что вы строите здесь, ведёт себя ровно так же, как в коде для браузера и Node.js, но не обязательно так же, как в Python, PCRE, Java или .NET.

Различия проявляются в таких вещах, как поддержка ретроспективной проверки, синтаксис именованных групп, отдельные экранирования свойств Unicode и обработка некоторых крайних случаев. Если ваш шаблон предназначен для среды не на JavaScript, проверьте его в том движке перед выпуском, а здешние результаты считайте достоверными только для JavaScript.

Кто им пользуется и зачем

Разработчики используют его постоянно: проверяют формат почты или телефона, разбирают строки логов, извлекают поля из грязных строк или пишут шаблон поиска и замены для своего редактора. Правильно составленное выражение на реальных примерах экономит отладку потом.

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

Советы по построению шаблонов

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

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

Всё остаётся в вашем браузере

И ваш шаблон, и ваш проверочный текст обрабатываются локально собственным движком regex браузера. Ничего не отправляется на сервер, а это важно, когда ваши примеры реальны: выдержки из логов, записи клиентов или что-либо, что вы не хотели бы выпускать с машины.

Здесь нет ни аккаунта, ни сохранённой на сервере истории. Когда вы закрываете вкладку, ваш шаблон и данные исчезают, поэтому скопируйте всё, что хотите сохранить. Плата за такую приватность в том, что инструмент не запоминает вашу работу между визитами.

О чём стоит помнить

Плохо написанный шаблон может тормозить на больших объёмах, особенно склонный к катастрофическому откату с вложенными квантификаторами. Если после правки страница словно зависает, упростите шаблон, а не скармливайте ему всё больше текста.

Тестер предназначен для построения и проверки выражений, а не для массовой обработки огромных файлов. Он спокойно справляется с щедрыми примерами, но это верстак для доведения regex до ума, после чего готовый шаблон вы запускаете в собственном коде или редакторе.

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

Какой диалект regex здесь используется?

Используется движок регулярных выражений JavaScript, встроенный в ваш браузер. Шаблоны ведут себя ровно так же, как в коде для браузера и Node.js, но могут отличаться от Python, PCRE, Java или .NET, поэтому при необходимости проверяйте их в той среде.

Загружаются ли мой шаблон или проверочный текст?

Нет. И ваш regex, и ваш пример текста обрабатываются целиком в вашем браузере его собственным движком regex. Ничего не отправляется на сервер, поэтому проверять на реальных логах или данных безопасно.

Что делают флаги g, i, m, s и u?

g находит все совпадения, i игнорирует регистр, m применяет якоря строк к каждой строке, s позволяет точке совпадать с переводами строк, а u включает полную обработку Unicode. Переключайте их здесь, и подсветка совпадений обновится мгновенно.

Показывает ли он группы захвата?

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

Почему тестер иногда кажется медленным?

Шаблон с вложенными квантификаторами может вызвать катастрофический откат, который тормозит на больших объёмах. Если страница словно зависает, упростите шаблон, а не добавляйте текст, и проверяйте на меньшем примере.

Сохраняет ли он мою работу между визитами?

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

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

Разместите этот инструмент на своём сайте

Бесплатная вставка на любой сайт или в любой блог — просто скопируйте код ниже. Инструмент загрузится ровно в том виде, в каком работает здесь, и по-прежнему будет работать приватно в браузере вашего посетителя.