DevToys Web Pro iconDevToys Web ProБлог
Оцените нас:
Попробуйте расширение для браузера:

Тестер регулярных выражений

Настройки

Шаблон

Тестовая строка

  • Совпадения

    Введите шаблон, чтобы увидеть совпадения

    Заменить

    Справка

    Классы символов

    .Любой символ, кроме перевода строки
    [abc]Совпадение с a, b или c
    [^abc]Совпадение с чем угодно, кроме a, b, c
    [a-z]Диапазон символов (от a до z)
    \dЦифра (0-9)
    \DНе цифра
    \wСимвол слова [a-zA-Z0-9_]
    \WНе символ слова
    \sПробельный символ
    \SНе пробельный символ

    Якоря

    ^Начало строки/строки текста
    $Конец строки/строки текста
    \bГраница слова
    \BНе граница слова

    Экранированные символы

    \tТабуляция
    \nПеревод строки
    \rВозврат каретки
    \0Нулевой символ
    \xhhШестнадцатеричный символ (например, \xFF)
    \uhhhhСимвол Unicode

    Группы и ссылки

    (abc)Захватывающая группа
    (?:abc)Незахватывающая группа
    (?<name>abc)Именованная захватывающая группа
    \1Обратная ссылка на группу 1
    \k<name>Обратная ссылка на именованную группу

    Просмотр вокруг (lookaround)

    (?=abc)Позитивный просмотр вперёд
    (?!abc)Негативный просмотр вперёд
    (?<=abc)Позитивный просмотр назад
    (?<!abc)Негативный просмотр назад

    Квантификаторы и альтернация

    a*0 или больше (жадно)
    a+1 или больше (жадно)
    a?0 или 1 (необязательно)
    a{n}Ровно n раз
    a{n,}n или больше раз
    a{n,m}От n до m раз
    a*?0 или больше (лениво)
    a+?1 или больше (лениво)
    a|bСовпадение с a или b

    Подстановка

    $1, $2Содержимое захваченной группы
    $&Полное совпадение
    $`До совпадения
    $'После совпадения
    $$Литеральный символ $
    Технические детали

    Как работает тестер RegEx

    Что делает инструмент

    Тестер regex позволяет проверять регулярные выражения на примере текста в реальном времени. Он работает и как отладчик regex, и как валидатор regex, помогая разработчикам создавать, тестировать и улучшать выражения для сопоставления шаблонов. Этот тестер использует движок JavaScript RegExp (ECMAScript), поэтому синтаксис может отличаться от движков PCRE, .NET или Java. Когда вам нужно протестировать regex онлайн, этот инструмент показывает все совпадения, группы захвата и замены. Инструмент поддерживает синтаксис регулярных выражений JavaScript, включая флаги JavaScript regex (g, i, m, s, u): global (g), case-insensitive (i), multiline (m), dotAll (s) и unicode (u). Он подсвечивает совпадения в тестовой строке, отображает группы захвата и может выполнять операции поиска и замены, чтобы предварительно показать, как regex преобразует текст.

    Распространенные сценарии использования для разработчиков

    Разработчики используют тестеры regex при создании шаблонов валидации, разборе лог-файлов или извлечении данных из строк. Тестирование шаблонов regexp помогает выявлять пограничные случаи, отлаживать сложные выражения и понимать, как разные флаги влияют на поведение сопоставления. Многие разработчики используют тестеры regex для проверки адресов электронной почты, телефонных номеров, URL или других структурированных форматов данных. Инструмент полезен при валидации форм, анализе логов или задачах обработки текста. Тестеры regex также помогают при изучении регулярных выражений, поскольку показывают, как шаблоны сопоставляются с текстом через итерацию совпадений и извлечение групп. При тестировании regexp с многострочным текстом или специальными символами инструмент помогает разработчикам точно увидеть, что именно совпадает и почему.

    Форматы данных, типы или варианты

    Тестеры regex обрабатывают синтаксис регулярных выражений JavaScript, который основан на Perl-подобных regex с некоторыми отличиями от других движков. Инструмент поддерживает классы символов, такие как \dдля цифр, \wдля буквенно-цифровых символов и подчёркивания, и \sдля пробельных символов. Он обрабатывает якоря ( ^, $), квантификаторы (*, +, ?) и альтернативы (|). Флаг multiline влияет на то, как ^и $сопоставляются, а флаг dotAll заставляет .сопоставляться с символами новой строки. Понимание поведения regex с переводами строк критично для обработки многострочного текста. Например, тестирование шаблона вроде /\d-\d-\d/ на строке с номером телефона показывает, какие именно части совпадают. Обработка переводов строк в regex зависит от флагов: шаблон ^foo.*bar$ совпадает с "foo\nbar" только при флаге dotAll (s), поскольку .по умолчанию не сопоставляется с переводами строк. При работе с шаблонами regex для переводов строк используйте \n для сопоставления буквального перевода строки или \r\n для окончаний строк Windows.

    Распространенные ошибки и крайние случаи

    Одна из распространённых ошибок — забывать, что в JavaScript regex использует косые черты как разделители, а не кавычки. Другая проблема — неверное понимание того, как флаг global влияет на сопоставление: без него возвращается только первое совпадение, а с ним находятся все совпадения. Обработка переводов строк в regex может быть коварной: символ .по умолчанию не сопоставляется с переводами строк, если не используется флаг dotAll. Отрицание класса символов с [^...] может сбивать с толку, поскольку оно сопоставляется с любым символом, не входящим в класс. Жадные и ленивые квантификаторы ( *vs *?) ведут себя по-разному и могут давать неожиданные результаты. Утверждения lookahead и lookbehind ( (?=...), (?&lt;=...)) мощные, но их может быть сложно отлаживать. Разработчикам следует тестировать шаблоны regex на различных входных данных, включая пограничные случаи вроде пустых строк, специальных символов и символов Unicode.

    Когда использовать этот инструмент, а когда — код

    Используйте этот тестер regex для быстрой разработки шаблонов, отладки сложных выражений или изучения синтаксиса регулярных выражений. Он идеально подходит для тестирования шаблонов regex перед внедрением их в код, особенно при работе с незнакомым синтаксисом или сложными шаблонами. Визуальная обратная связь помогает понять, почему шаблон совпадает или не совпадает с конкретным текстом. Для продакшен-кода используйте тестеры regex, интегрированные в IDE или фреймворки модульного тестирования, которые могут валидировать шаблоны как часть вашего набора тестов. Браузерные инструменты отлично подходят для интерактивной разработки и обучения, тогда как решения на уровне кода обеспечивают автоматизацию, интеграцию с CI/CD-конвейерами и возможность тестировать шаблоны на больших наборах данных. Для сложных приложений автоматизированное тестирование regex гарантирует корректную работу шаблонов на разных входных данных и в пограничных случаях.