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>Зворотне посилання на іменовану групу

    Перевірки навколо

    (?=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. Коли вам потрібно протестувати regex онлайн, цей інструмент показує всі збіги, групи захоплення та заміни. Інструмент підтримує синтаксис 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 із деякими відмінностями від інших рушіїв regex. Інструмент підтримує класи символів, як-от \d для цифр, \w для символів слова та \s для пробільних символів. Він обробляє якорі ( ^, $), квантифікатори (*, +, ?) та альтернативу (|). Прапорець multiline впливає на те, як ^ і $ зіставляються, тоді як прапорець dotAll змушує . зіставляти символи нового рядка. Розуміння поведінки regex щодо нового рядка є критично важливим для обробки багаторядкового тексту. Наприклад, тестування шаблону на кшталт /\d-\d-\d/ на рядку з номером телефону показує, які саме частини збігаються. Обробка нового рядка в regex залежить від прапорців: шаблон ^foo.*bar$ зіставляється з "foo\nbar" лише з прапорцем dotAll (s), оскільки . за замовчуванням не зіставляє символи нового рядка. Під час роботи з шаблонами regex для нового рядка використовуйте \n, щоб зіставляти буквальні символи нового рядка, або \r\n для завершень рядків Windows.

    Поширені помилки та крайові випадки

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

    Коли використовувати цей інструмент, а коли — код

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