Modulelessen (4/4)
Benoemde groepen en terugverwijzingen
Wanneer het aantal groepen groeit, onthoud dan dat $2 "de maand" is en $5
is "het jaar" kwetsbaar wordt. Met de syntaxis (?<name>...) kunt u dit doen
noem een groep: je hebt toegang tot de groep via groups.name (en in
vervangingen als $<name>).
Pattern: (?<anno>\d{4})-(?<mese>\d{2})-(?<giorno>\d{2})
Sample: 2024-03-15
Gruppi:
anno = "2024"
mese = "03"
giorno = "15"De editor toont de benoemde groepen naast de wedstrijd.
Terugverwijzing
Met een terugverwijzing kunt u, binnen hetzelfde patroon, verwijzen naar naar een eerdere opname. De syntaxis:
\1,\2, … -- genummerde referentie (naar groep 1, 2, …).\k<name>-- genoemde referentie.
Pattern: \b(\w+)\s+\1\b
Sample: un test un test il il gatto
^^^^^Het komt overeen met opeenvolgende dubbele woorden: (\w+) legt een woord vast en
Voor \s+\1 zijn een spatie en hetzelfde woord vereist.
Zelfdocumenterende code en benoemde terugverwijzingen
Benoemde groepen verbeteren de leesbaarheid van JavaScript-code: in plaats van te verwijzen naar match[1], krijgt u toegang tot match.groups.name. Binnen het patroon zelf wordt ernaar verwezen met de syntaxis \\k<name>.
Probeer het
Vind elke datum in het formaat JJJJ-MM-DD en noem de groepen `anno`, `mese`, `giorno`.
Toon hint
Syntaxis: (?<naam>patroon). De wedstrijd toont de groepen onder de vermelding 'benoemd'.
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Zoek opeenvolgende dubbele woorden (bijvoorbeeld `il il`, `casa casa`). Gebruik een groep voor de eerste en een terugverwijzing `\\1` voor de tweede.
Toon hint
\\b(\\w+)\\s+\\1\\b: het eerste woord is (\\w+), dan een spatie, dan hetzelfde woord \\1.
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
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.
Toon hint
Geef de naam (?<tag>\\w+) en sluit deze af met \\k<tag>.
Oplossing beschikbaar na 3 pogingen