Тестер 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.