Lecții din modul (4/4)
Grupuri denumite și referințe din spate
Când numărul de grupuri crește, rețineți că $2 este „luna” și $5
este „anul” devine fragil. Sintaxa (?<name>...) vă permite
numiți un grup: îl accesați după nume prin groups.name (și în
înlocuiri ca $<name>).
Pattern: (?<anno>\d{4})-(?<mese>\d{2})-(?<giorno>\d{2})
Sample: 2024-03-15
Gruppi:
anno = "2024"
mese = "03"
giorno = "15"Editorul arată grupurile numite lângă meci.
Backreference
O backreference vă permite să faceți referire, în interiorul aceluiași model, la o captură anterioară. Sintaxa:
\1,\2, … -- referință numerotată (la grupul 1, 2, …).\k<name>-- referință denumită.
Pattern: \b(\w+)\s+\1\b
Sample: un test un test il il gatto
^^^^^Se potrivește cu cuvinte duplicate consecutive: (\w+) captează un cuvânt, apoi
\s+\1 necesită un spațiu și același cuvânt.
Cod de auto-documentare și referințe cu nume
Grupurile denumite îmbunătățesc lizibilitatea codului JavaScript: în loc să vă referiți la match[1], accesați match.groups.name. În interiorul modelului în sine, referirea lor se face cu sintaxa \\k<name>.
Încearcă
Găsiți fiecare dată în format AAAA-LL-ZZ denumind grupurile `anno`, `mese`, `giorno`.
Afișează indiciu
Sintaxă: (?<nume>model). Meciul arată grupele sub intrarea „numită”.
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Găsiți cuvinte duplicate consecutive (de exemplu, `il il`, `casa casa`). Utilizați un grup pentru primul și o referință în spate `\\1` pentru al doilea.
Afișează indiciu
\\b(\\w+)\\s+\\1\\b: primul cuvânt este (\\w+), apoi un spațiu, apoi același cuvânt \\1.
Soluție disponibilă după 3 încercări
Provocare suplimentară
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.
Afișează indiciu
Atribuiți numele (?<etichetă>\\w+) și închideți-l cu \\k<etichetă>.
Soluție disponibilă după 3 încercări