Проверка регулярных выражений
Проверяйте регулярные выражения: совпадения подсвечиваются цветом, а содержимое групп и результат замены видны сразу.
Регулярное выражение и текст
Флаги
Символов: 0 · строк: 0
Результат
Вид результата
Введите регулярное выражение и текст — совпадения подсветятся цветом.
Всё обрабатывается на этом устройстве. Введённый текст никуда не отправляется.
Работает на регулярных выражениях JavaScript (браузера). Синтаксис может немного отличаться от Python, PHP, Java и других языков.
Пригодилось? Будем рады, если поделитесь
Что-то не работает или есть идея, как сделать лучше?
Как пользоваться
1. Введите регулярное выражение
В поле «Регулярное выражение» введите шаблон, который нужно найти. Неудобные для набора символы вроде \d и [ ] вставляются в позицию курсора кнопками под полем. Можно и выбрать готовый шаблон — email, дату и другие — в списке «Выбрать готовый шаблон». Кнопка «Разбор» в правом верхнем углу поля покажет, с чем совпадает каждая часть.
В поле «Регулярное выражение» слева введите шаблон, который нужно найти. Неудобные для набора символы вроде \d и [ ] вставляются в позицию курсора кнопками под полем. Можно и выбрать готовый шаблон — email, дату и другие — в списке «Выбрать готовый шаблон». Кнопка «Разбор» в правом верхнем углу поля покажет, с чем совпадает каждая часть.
2. Введите текст
В поле «Текст для проверки» ниже вставьте или наберите текст, в котором нужно искать (кнопка «Пример» подставит пример текста). В блоке «Результат» под ним сразу подсветятся совпадения и появится их число.
В поле «Текст для проверки» ниже слева вставьте или наберите текст, в котором нужно искать (кнопка «Вставить пример» подставит пример текста). Справа сразу подсветятся совпадения и появится их число.
3. Переключите флаги и посмотрите список совпадений
Выключите «g Все» в блоке «Флаги», чтобы искать только первое совпадение (включите снова, чтобы искать все). В блоке «Список совпадений» ниже для каждого совпадения показаны позиция и содержимое групп ($1, <year> и т. п.). Нажмите на строку, чтобы выделить это место в тексте выше.
Выключите «g Все» в блоке «Флаги», чтобы искать только первое совпадение (включите снова, чтобы искать все). В блоке «Список совпадений» справа для каждого совпадения показаны позиция и содержимое групп ($1, <year> и т. п.). Нажмите на строку, чтобы выделить это место в тексте слева.
4. Извлеките только совпадения
Вверху блока «Результат» выберите «Извлечь» — совпадения выстроятся по одному на строку. Если в выражении есть группы, в списке «Совпадение целиком» можно выбрать только одну, например <year>. Включите «Без повторов», чтобы одинаковые остались по одному; «Копировать извлечённое» копирует результат, а «Сохранить как текст» сохраняет его в файл.
Вверху правого блока выберите «Извлечь» — совпадения выстроятся по одному на строку. Если в выражении есть группы, в списке «Совпадение целиком» можно выбрать только одну, например <year>. Включите «Без повторов», чтобы одинаковые остались по одному; «Копировать извлечённое» копирует результат, а «Сохранить как текст» сохраняет его в файл.
5. Попробуйте замену и скопируйте
Вверху блока «Результат» выберите «Замена» и введите в поле «Заменить на», например, $<day>/$<month>/$<year> — текст с заменой сразу появится. Нажмите «Копировать результат», чтобы скопировать его.
Вверху правого блока выберите «Замена» и введите в поле «Заменить на», например, $<day>/$<month>/$<year> — текст с заменой сразу появится. Нажмите «Копировать результат», чтобы скопировать его.
Когда пригодится
Проверить, правильно ли написана регулярка
Прежде чем вставлять её в код, по цвету сразу видно, находит ли она только нужное и не цепляет ли лишнего. Когда всё готово, выберите язык — Python, PHP, Go и другие — и скопируйте выражение в виде, готовом для вставки в код.
Веб-разработчики и те, кто учится программировать
Разобраться в чужой регулярке
Вставьте выражение из доставшегося кода или статьи и нажмите «Разбор» — коротко, по частям, будет показано, с чем совпадает каждая, например «Одна цифра, повторов: 4».
Те, кто читает код, и те, кто учится программировать
Вытащить данные из логов или таблиц
Найдите email, даты или номера заказов, выстройте их по одному на строку в режиме «Извлечь» и скопируйте или сохраните в текстовый файл.
Аналитики данных и сотрудники поддержки
Собрать только часть из группы, без повторов
Можно извлечь только то, что в ( ), например домен из email или хост из URL. С включённым «Без повторов» то, что встречается много раз, останется в списке по одному.
Аналитики данных и веб-специалисты
Проверить замену перед массовой правкой
Перед массовой заменой в редакторе или таблице посмотрите, что получится с $1 и другими подстановками.
Те, кто приводит в порядок тексты и таблицы
Сделать проверку полей формы
Составьте регулярку для проверки индекса или телефона, проверяя её на разных вариантах ввода.
Те, кто делает формы
Что стоит знать
- Работает на регулярных выражениях JavaScript. Возможности, которые есть только в Python, PHP, Java или .NET (ревнивые квантификаторы ++, (?i) и т. п.), не поддерживаются.
- При копировании для другого языка отличия в синтаксисе по возможности исправляются. О том, что исправить нельзя (например, ретроспективная проверка в Go), появится короткое предупреждение — проверьте выражение и в этом языке.
- Слишком долгий поиск останавливается через 2 секунды с предупреждением. В этом случае уменьшите вложенность повторов.
- В списке показываются первые 300 совпадений, подсвечиваются и извлекаются первые 5000 (подсчёт всегда идёт до конца).
О проверке регулярных выражений
Регулярные выражения описывают форму текста — «четыре цифры подряд», «буквы и цифры с @ посередине» — короткими записями вроде \d{4} или [\w.]+@[\w.]+. Ими пользуются для поиска, замены и проверки ввода во множестве программ и редакторов, но одна небольшая ошибка — и выражение находит не то, что задумано.
Инструмент проверяет выражение при каждом нажатии клавиши с помощью регулярных выражений JavaScript в браузере и подсвечивает совпадения цветом. Для каждого совпадения он показывает содержимое групп (частей в ( )) и именованных групп ((?<имя>…)), чтобы можно было убедиться, что нужная часть извлекается правильно. Даже выражения, которые не завершаются, вроде (a+)+, выполняются отдельно и с ограничением по времени, поэтому страница не зависает.
Частые вопросы
Ответы на вопросы, которые часто возникают при проверке регулярных выражений.
Мой текст или регулярное выражение куда-нибудь отправляются?
Нет. Вся обработка идёт в браузере вашего устройства, и введённый текст и выражение не отправляются на сервер и не сохраняются. Можно спокойно проверять внутренние логи и тексты с персональными данными.
Какой диалект регулярных выражений используется?
Диалект JavaScript (RegExp браузера). Поддерживаются именованные группы (?<имя>…), ретроспективная проверка (?<=…), \p{…} (флаг u) и другое. В Python, PHP, Java и других языках синтаксис может отличаться в мелочах, так что при переносе сверьтесь с документацией нужного языка.
Можно использовать выражение в коде на Python или PHP?
Да. В правом верхнем углу поля «Регулярное выражение» выберите язык — JavaScript, Python, PHP, Java, Ruby или Go — и нажмите кнопку копирования: выражение скопируется в виде кода на этом языке. Отличия в синтаксисе исправляются, например (?P<имя>…) в Python, \A и \z в Ruby, (?i) в Go. Если что-то на этом языке не записать, как ретроспективную проверку в Go, под полем появится короткое предупреждение. Выбранный язык запоминается до следующего раза.
Можно вставить выражение в виде /abc/gi?
Да. Если поле «Регулярное выражение» пустое, вставьте что-нибудь вроде /abc/gi — выражение и флаги разделятся сами. А если выбрать «JavaScript» в правом верхнем углу поля и нажать кнопку копирования, текущее выражение скопируется в виде /…/, чтобы сразу вставить его в код на JavaScript.
Можно узнать, что означает выражение?
Нажмите «Разбор» в правом верхнем углу поля «Регулярное выражение»: выражение разделится на части, и для каждой будет показано, с чем она совпадает, например «Одна цифра, повторов: 4» или «Группа year». Содержимое групп показано с отступом, так что можно проверить и то, как сочетаются скобки.
Можно получить список только совпадений?
Выберите «Извлечь» — совпадения выстроятся по одному на строку. Если есть группы, можно выбрать только эту часть ($1, <имя>). «Без повторов» оставляет одинаковые по одному, а результат можно скопировать или сохранить в текстовый файл. Если флаг g выключен, будет только первое совпадение.
Где посмотреть содержимое групп?
В блоке «Список совпадений» справа для каждого совпадения показано содержимое $1, $2… (для именованных групп — <имя>). Группа, которая не совпала, отмечается как «(нет совпадения)».
Что можно использовать при замене?
Выберите «Замена» и используйте в поле «Заменить на» $1, $2… (группы), $<имя> (именованная группа), $& (всё совпадение) и $$ (сам знак $). Если флаг g включён, заменяется всё, если выключен — только первое совпадение.
Появилось «Поиск занял слишком много времени и был остановлен»
У выражений с повтором внутри повтора, как (a+)+ или (.*)*, на несовпадающем тексте объём вычислений может расти взрывообразно (катастрофический возврат). Чтобы страница не зависла, поиск останавливается через 2 секунды. Объедините повторы в один или сузьте набор символов, например [^,]* вместо .*.
Как искать без учёта регистра?
Включите «i Без регистра» в блоке «Флаги». Заглавные и строчные буквы, например A и a или Ж и ж, будут считаться одинаковыми (а вот Е и Ё остаются разными буквами).
^ и $ не совпадают с каждой строкой
По умолчанию ^ и $ совпадают только с началом и концом всего текста. Чтобы они работали для каждой строки, включите «m По строкам» в блоке «Флаги».
Можно искать кириллицу или иероглифы?
Да. С флагом u выражение \p{L} находит буквы любого алфавита, а \p{Script=Cyrillic} — только кириллицу. Для иероглифов выберите «Иероглифы (кандзи)» в списке «Выбрать готовый шаблон»: он использует \p{Script=Han} и сам включает флаг u.
Это бесплатно?
Да, бесплатно. Без регистрации, установки и рекламы. Пользуйтесь сколько угодно и с текстами любой длины.
Другие инструменты
- Полная и половинная ширина
Переводит буквы, цифры и катакану между полной и половинной шириной.
- Конвертер хирагана ⇔ катакана
Преобразует хирагану, катакану и полуширинную катакану разом. Кандзи, латиница и цифры остаются без изменений.
- Счётчик символов для соцсетей (X, Instagram, YouTube)
Показывает, сколько символов осталось до лимита в X, Instagram, YouTube и других соцсетях, по правилам каждой из них. А ещё слова и строки.
- Форматирование JSON
Делает JSON удобным для чтения или сжимает его в одну строку. Если есть ошибка, показывает, где она.
- Кодирование и декодирование URL
Переводит кириллицу, пробелы и символы в формат URL (например, %D0%BF) или возвращает исходный текст.
- Генератор паролей
Выберите длину и символы — и сразу получите пароли, которые трудно подобрать.