raatools/

Тестер Regex

Тестуйте regex-шаблони з живим зіставленням, прапорцями та деталями.

Що таке регулярні вирази?

Регулярні вирази (regex або regexp) — це шаблони, що використовуються для пошуку комбінацій символів у тексті. Вони є одним із найпотужніших інструментів у програмуванні для пошуку, перевірки, вилучення та перетворення тексту. Кожна основна мова програмування підтримує регулярні вирази, і вони є незамінними для таких завдань, як перевірка форм, аналіз журналів і очищення даних.

Шаблон regex описує набір рядків за допомогою спеціального синтаксису. Прості шаблони збігаються з буквальним текстом, тоді як метасимволи, такі як . (будь-який символ), * (нуль або більше) та + (один або більше), додають гнучкість. Групування за допомогою дужок, чергування з |, а також класи символів з [] дозволяють будувати точні правила збігу практично для будь-якого текстового шаблону.

Як користуватися тестером regex

Введіть шаблон регулярного виразу в поле шаблону, виберіть потрібні прапори (g, i, m, s) і вставте текст для перевірки. Інструмент виділяє всі збіги в реальному часі та відображає групи захоплення для кожного збігу. Використовуйте це для розробки та налагодження шаблонів regex перед вбудовуванням їх у код.

Поширені шаблони regex

  • Адреси електронної пошти: ^[^\s@]+@[^\s@]+\.[^\s@]+$ — збігається зі стандартними форматами електронної пошти.
  • URL-адреси: https?://\S+ — збігається з URL-адресами, що починаються з http або https.
  • IPv4-адреси: збігається зі стандартним форматом з крапками, як 192.168.1.1, за допомогою квантифікаторів цифр.
  • Дати: збігається з датами у форматі РРРР-ММ-ДД за допомогою чотиризначного року та двозначних місяця та дня.
  • Слова з великої літери: [A-Z][a-z]+ — збігається зі словами, що починаються з великої літери.

Пояснення прапорів regex

  • g: g (Global — глобальний): знаходить усі збіги в тексті, а не лише перший.
  • i: i (Case-insensitive — нечутливий до регістру): шаблон збігається незалежно від регістру літер.
  • m: m (Multiline — багаторядковий): ^ та $ збігаються з початком і кінцем кожного рядка, а не лише всього рядка.
  • s: s (Dotall): метасимвол . також збігається з символами нового рядка.

Групи захоплення

Дужки () створюють групи захоплення, які витягують конкретні частини збігу. Кожна група нумерується починаючи з 1. Наприклад, шаблон (\w+)@(\w+\.\w+), застосований до «user@example.com», захоплює «user» у групі 1 та «example.com» у групі 2. Іменовані групи за допомогою (?<ім'я>...) роблять складні шаблони більш зрозумілими.

Поширені помилки у regex

Забування екранувати спеціальні символи є найпоширенішою помилкою. Символи . + * ? ( ) [ ] ^ $ | та фігурні дужки мають особливе значення у regex і мають екрануватися зворотною косою рискою, коли потрібно зіставити їх буквально. Наприклад, для збігу з крапкою потрібен зворотна коса риска перед крапкою, а не просто крапка.

Написання надмірно жадібних шаблонів є ще однією частою проблемою. Квантифікатор .* збігається з якомога більшою кількістю тексту, що може захопити набагато більше, ніж передбачалося. Використовуйте лінивий квантифікатор .*? для мінімального збігу або більш конкретні шаблони, як-от [^>]* замість .* при аналізі структурованого тексту.

Часті запитання

Чи однакові шаблони regex у всіх мовах?

Основний синтаксис схожий, але є відмінності. JavaScript, Python, Java та .NET мають дещо різні функції та синтаксис для розширених конструкцій, таких як ретроспективні твердження, іменовані групи та підтримка Unicode. Цей інструмент використовує JavaScript regex, який є стандартним для веброзробки.

Як навчитися регулярним виразам?

Починайте з простих шаблонів і поступово додавайте складність. Спочатку вивчіть основні метасимволи (. * + ? ^ $), класи символів ([a-z], \d, \w) та квантифікатори. Потім перейдіть до групування, чергування та випереджальних тверджень. Практикуйтеся на реальних завданнях — перевірка електронної пошти, аналіз файлів журналів або вилучення даних з HTML.