10 RegEx Tester для JavaScript, Python, PHP, Golang, Ruby тощо.

Регулярні вирази: Повний путівник

Регулярний вираз, іноді, може створити клопоти. Але не завжди!

Давайте заглибимося у світ регулярних виразів та їхніх шаблонів. Ми розглянемо ті візерунки, що на перший погляд виглядають як хаотичний набір символів. Нашою метою буде розшифрувати значення кожного елемента в регулярному виразі.

Після ознайомлення з цією статтею, ви отримаєте змогу самостійно створювати регулярні вирази та застосовувати їх з користю. Насамкінець, ми поділимося з вами переліком онлайн-інструментів для тестування RegEx, що дозволить вам створювати та перевіряти власні вирази, виходячи з конкретних потреб.

Вступ

Регулярні вирази, або RegEx, це послідовності символів, що використовуються як шаблони для пошуку певних символів або рядків тексту.

Наприклад, якщо ми хочемо з’ясувати, чи містить рядок слово “яблуко”, то можемо застосувати регулярний вираз “/яблуко” для пошуку. Або ж, для перевірки наявності цифри від 0 до 9 в рядку, можна використати вираз “/[0-9]”.

Застосування регулярних виразів

Сфера використання регулярних виразів у сучасному веб-середовищі надзвичайно широка. Вони застосовуються при перевірці веб-форм, в пошукових системах, лексичних аналізаторах в IDE, текстових редакторах та редакторах документів.

Усі ми неодноразово користувалися комбінацією клавіш “CTRL + F” для пошуку в документі або фрагменті коду конкретного слова, фрази або виразу. Це є яскравим прикладом повсякденного використання регулярних виразів.

Перш ніж продовжити, давайте розглянемо один з часто використовуваних регулярних виразів.

Чи здогадаєтеся ви, для чого призначений наступний регулярний вираз? 🤔

^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$

Не хвилюйтеся, якщо відповідь не очевидна. Я впевнений, що ви зможете розгадати його призначення до кінця цієї статті.

Почнемо з основ – азбуки RegEx.

Токени

Для початку розберемо окремі символи, з яких складається вищезгаданий RegEx.

^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$

Цей регулярний вираз складається з безлічі символів, або токенів. Давайте з’ясуємо їх значення:

Токен Значення
^ Позначає початок рядка.
(…) Вказує на групу, що охоплює все, що знаходиться всередині дужок.
[…] Квадратні дужки [] охоплюють набір символів, будь-який з яких може бути зіставлений. Наприклад, [abc] відповідатиме символу ‘a’, ‘b’ або ‘c’.
a-z Набір малих літер від ‘a’ до ‘z’. Варто пам’ятати, що RegEx чутливий до регістру.
A-Z Набір великих літер від ‘A’ до ‘Z’.
0-9 Цифри від 0 до 9.
_ Відповідає символу підкреслення ‘_’.
\ Це символ екранування.
. Відповідає символу крапки “.”. Використовується, оскільки сам по собі символ “.” у регулярному виразі є токеном, що відповідає будь-якому символу.
+ Це квантор. Відповідає одному або декільком входженням символу, з яким він застосовується. Наприклад, ‘a+’ означає одне або кілька входжень символу ‘a’.
Відповідає символу дефіс “-“.
@ Відповідає символу “@”.
{} Ще один квантор. Використовується для позначення кількості повторень символу. Наприклад, ‘{3}’ означає рівно 3 входження.
$ Позначає кінець рядка.

Аналіз заданого шаблону регулярного виразу

Озброївшись знаннями про токени, спробуємо розшифрувати наведений вище регулярний вираз:

  • ^([a-zA-Z0-9_-.]+) означає, що ми шукаємо рядок, який починається з одного або кількох буквено-цифрових символів (верхнього або нижнього регістру), підкреслення, дефіса або крапки. Наприклад, “user_name.01” відповідає цьому шаблону. Зверніть увагу, що не потрібно використовувати всі символи з набору, а лише хоча б один з них: [a-zA-Z0-9_-.] .
  • Символ ‘@’ відповідає одному входженню символу “@”. Додавши до попереднього прикладу символ “@”, отримаємо “user_name.01@”.
  • ([a-zA-Z0-9_-.]+) аналогічний першому пункту. Він означає пошук рядка, що містить один або більше буквено-цифрових символів, підкреслення, дефіс або крапку. Додавши до прикладу, отримаємо щось на зразок “user_name.01@domain”.
  • Як ви, напевно, вже зрозуміли, мова йде про шаблон електронної пошти. Далі, символ “.” відповідає одному входженню “.”. Продовжуючи приклад, отримаємо “user_name.01@domain.”
  • ([a-zA-Z]{2,5})$ це означає, що рядок повинен закінчуватися від 2 до 5 символами алфавіту (верхнього або нижнього регістру). Додавши “.com” до попереднього прикладу, отримаємо “[email protected]”, що є типовим шаблоном адреси електронної пошти.

Об’єднавши все вищесказане, ми бачимо, що цей регулярний вираз використовується для пошуку рядка, що відповідає шаблону ідентифікатора електронної пошти. Тепер ми можемо використовувати цей вираз для валідації будь-якої електронної адреси. Якщо наша тестова адреса електронної пошти відповідає цьому шаблону, то вона вважається дійсною.

P.S. Це типовий шаблон для багатьох email-адрес в інтернеті.

Типи токенів

В регулярних виразах можна використовувати багато різних токенів у різних комбінаціях для опису різноманітних виразів. Розглянемо різні типи токенів, які використовуються в регулярних виразах, а також найбільш часто використовувані з них у кожній категорії.

Основні токени

Почнемо з основних токенів. Вони використовуються практично в кожному регулярному виразі, тож знання їх необхідне.

Токен Значення
r Відповідає символу повернення каретки.