DevToys 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 debugger и regex validator, помогая разработчикам создавать, тестировать и улучшать выражения сопоставления шаблонов. Этот тестер использует движок JavaScript RegExp (ECMAScript), поэтому синтаксис может отличаться от PCRE, .NET или Java regex движков. Когда вам нужно test regex online, этот инструмент показывает все совпадения, группы захвата и замены. Инструмент поддерживает синтаксис JavaScript regex, включая флаги 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 с некоторыми отличиями от других regex движков. Инструмент поддерживает классы символов, такие как \d для цифр, \w для символьных символов и \s для пробелов. Он обрабатывает якоря (^, $), квантификаторы (*, +, ?) и альтернацию (|). Флаг multiline влияет на то, как ^ и $сопоставляются, в то время как флаг dotAll заставляет .сопоставлять символы новой строки. Понимание поведения regex new line важно для обработки многострочного текста. Например, тестирование шаблона вроде /\d3-\d3-\d4/ на строке номера телефона показывает точно, какие части сопоставляются. Обработка regex new line зависит от флагов: шаблон ^foo.*bar$ сопоставляется с "foo\nbar" только с флагом dotAll (s), поскольку . не сопоставляется с переводами строк по умолчанию. При работе с шаблонами regex new line используйте \n для сопоставления буквальных переводов строк или \r\n для окончаний строк Windows.

    Типичные подводные камни и крайние случаи

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

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

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