Регулярні вирази
Щоразу, коли вам потрібно щось замінити, знайти або відредагувати в тексті, ви можете використовувати регулярні вирази. Їх використання особливо корисно для довгих текстів. Регулярні вирази широко використовуються у багатьох мовах програмування (у першу чергу, у мовах скриптів, таких як Python, PHP, Perl, JavaScript). Але ви також можете використовувати їх у командах Unix (наприклад, grep) або в текстових редакторах (як-от, Notepad++, Emacs). Регулярних виразів дуже багато. У наших прикладах ми в основному узагальнюємо основні оператори.
ВгоруБазовий пошук
Основними елементами регулярних мов є звичайні букви. Вони збігаються під час пошуку. Таким чином, якщо ми вводимо регулярний вираз кр, слова, які містять підрядок “кр”, відповідатимуть йому.
Крапка відповідає будь-якому символу.
Метасимволи — це спеціальні символи, які ми використовуємо для створення регулярних виразів (як-от, .*+?). Але що якщо ми хочемо шукати саме ці символи? Для цього ми використовуємо зворотну скісну риску (\), яка скасовує значення метасимвола та оцінює його як звичайний символ.
Групи символів
Ми можемо використовувати такі спеціальні символи для позначення груп літер у регулярному виразі:
[] |
вибір символу в дужках, як-от, [aeiouy] означає будь-яку з перелічених голосних |
[ - ] |
вибір символу з інтервалу, напр., [a-z] – будь-яка мала літера англійського алфавіту |
[^ ] |
заперечений вибір символів, наприклад, [^aeiouy] означає все, крім голосних у списку |
\d |
цифри (те саме, що [0-9]) |
\D |
усі, крім цифр (те саме, що [^0-9]) |
\w |
буквено-цифрові символи (те саме, що [a-zA-Z0-9_]) |
\W |
усі, крім буквено-цифрових символів (те саме, що [^a-zA-Z0-9_]) |
\s |
«білі» символи (пробіл, табуляція, символи розриву рядка) |
\S |
усі, крім «білих» символів |
Крім того, ми можемо використовувати такі конструкції, які визначають більше параметрів або групують символи разом:
| |
розділяє кілька часткових виразів (`привіт|вітаю’ відповідає саме одному з привітань) |
() |
підрядок, до якого можна застосувати квантор (ло(со)?сь може бути як лось, так і лосось) |
Квантори
Квантори в регулярних виразах вказують, скільки разів має повторюватися попередній вираз. Наприклад, зірочка в pe*s означає будь-яку кількість входжень літери e.
* |
будь-яка кількість повторень |
+ |
одне або кілька повторень |
? |
необов’язкове входження (~ 0 або 1 повторення) |
{n} |
точно n випадків |
{n,m} |
щонайменше n, щонайбільше m входжень |
Використовуючи такі спеціальні символи, ми можемо позначити межі (початок, кінець) слів і цілих рядків у регулярному виразі:
^ |
початок рядка |
$ |
кінець рядка |
\b |
початок чи кінець слова |