Direct naar de hoofdinhoud
Module 4 · Les 4 van 416/32 in de cursus~12 min
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>).

Code
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.
Code
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

Oefening#regex.m4.l4.e1
Pogingen: 0Laden…

Vind elke datum in het formaat JJJJ-MM-DD en noem de groepen `anno`, `mese`, `giorno`.

Editor laden…
Toon hint

Syntaxis: (?<naam>patroon). De wedstrijd toont de groepen onder de vermelding 'benoemd'.

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#regex.m4.l4.e2
Pogingen: 0Laden…

Zoek opeenvolgende dubbele woorden (bijvoorbeeld `il il`, `casa casa`). Gebruik een groep voor de eerste en een terugverwijzing `\\1` voor de tweede.

Editor laden…
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

Oefening#regex.m4.l4.e3
Pogingen: 0Laden…

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.

Editor laden…
Toon hint

Geef de naam (?<tag>\\w+) en sluit deze af met \\k<tag>.

Oplossing beschikbaar na 3 pogingen