Модульні уроки (4/4)
Іменовані групи та зворотні посилання
Коли кількість груп зростатиме, пам’ятайте, що $2 — це «місяць», а $5
це «рік» стає крихким. Синтаксис (?<name>...) дозволяє вам
назвіть групу: ви отримуєте доступ до неї за назвою через groups.name (і в
заміни як $<name>).
Pattern: (?<anno>\d{4})-(?<mese>\d{2})-(?<giorno>\d{2})
Sample: 2024-03-15
Gruppi:
anno = "2024"
mese = "03"
giorno = "15"Редактор показує названі групи поруч із відповідністю.
Зворотне посилання
Зворотнє посилання дозволяє посилатися, в той самий шаблон, до попереднього захоплення. Синтаксис:
\1,\2, … -- нумероване посилання (до групи 1, 2, …).\k<name>-- іменована посилання.
Pattern: \b(\w+)\s+\1\b
Sample: un test un test il il gatto
^^^^^Він шукає послідовні повторювані слова: (\w+) захоплює слово, а потім
\s+\1 вимагає пробіл і те саме слово.
Самодокументований код і іменовані зворотні посилання
Іменовані групи покращують читабельність коду JavaScript: замість посилання на match[1] ви отримуєте доступ до match.groups.name. Усередині самого шаблону посилання на них виконуються за допомогою синтаксису \\k<name>.
Спробуйте
Знайдіть кожну дату у форматі РРРР-ММ-ДД, назвавши групи `anno`, `mese`, `giorno`.
Показати підказку
Синтаксис: (?<name>шаблон). Збіг показує групи під записом «названий».
Рішення доступне після 3 спроб
Повторна вправа
Знайдіть послідовні повторювані слова (наприклад, `il il`, `casa casa`). Використовуйте групу для першого та зворотне посилання `\\1` для другого.
Показати підказку
\\b(\\w+)\\s+\\1\\b: перше слово (\\w+), потім пробіл, потім ТЕ ЖЕ слово \\1.
Рішення доступне після 3 спроб
Додатковий виклик
Find HTML/XML tag pairs (e.g. `<b>text</b>` or `<i>text</i>`) ensuring that the closing tag matches the opening tag using a named backreference.
Показати підказку
Призначте назву (?<тег>\\w+) і закрийте його \\k<тег>.
Рішення доступне після 3 спроб