Direkt zum Hauptinhalt springen
eLearner.app
Modul 4 · Lektion 4 von 416/32 im Kurs~12 min
Lektionen des Moduls (4/4)

Benannte Gruppen und Rückwärtsreferenzen

Wenn die Anzahl der Gruppen wächst, denken Sie daran, dass $2 „der Monat“ ist und $5 und „das Jahr“ wird brüchig. Die Syntax (?<nome>...) ti permette di nominare un gruppo: lo accedi per nome via groups.name (e nelle sostituzioni come $<nome>).

Code
Pattern: (?<anno>\d{4})-(?<mese>\d{2})-(?<giorno>\d{2})
Sample:  2024-03-15
Gruppi:
  anno    = "2024"
  mese    = "03"
  giorno  = "15"

Der Editor zeigt auch die benannten Gruppen neben der Übereinstimmung an.

Rückverweis

Eine Rückreferenz ermöglicht es Ihnen, innerhalb desselben Musters zu verweisen, zu einer früheren Aufnahme. Die Syntax:

  • \1, \2, \u2026 – nummerierte Referenz (zu Gruppe 1, 2, \u2026).
  • \k<nome> – benannte Referenz.
Code
Pattern: \b(\w+)\s+\1\b
Sample:  un test un test il il gatto
                                ^^^^^

Matcha aufeinanderfolgende doppelte Wörter: (\w+) fängt also ein Wort \s+\1 erfordert ein Leerzeichen und das gleiche Wort.

Selbstdokumentation und Rückverweis benannt

Benannte Gruppen verbessern die Lesbarkeit von JavaScript-Code: Anstatt auf match[1] zu verweisen, wird auf match.groups.nome zugegriffen. Im Muster erfolgt der Rückverweis über die Syntax \k<nome>.

Probieren Sie es selbst aus

Übung#regex.m4.l4.e1
Versuche: 0Wird geladen…

Trova ogni data in formato YYYY-MM-DD nominando i gruppi `anno`, `mese`, `giorno`.

Editor wird geladen…
Hinweis anzeigen

Sintassi: (?<nome>pattern). Il match ti mostra i gruppi sotto la voce 'named'.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#regex.m4.l4.e2
Versuche: 0Wird geladen…

Trova parole consecutive duplicate (es. `il il`, `casa casa`). Usa un gruppo per la prima e un backreference `\\1` per la seconda.

Editor wird geladen…
Hinweis anzeigen

\\b(\\w+)\\s+\\1\\b: la prima parola e' (\\w+), poi spazio, poi la STESSA parola \\1.

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#regex.m4.l4.e3
Versuche: 0Wird geladen…

Trova coppie di tag HTML/XML (es. `<b>testo</b>` o `<i>testo</i>`) assicurandoti che il tag di chiusura coincida con quello di apertura utilizzando una named backreference.

Editor wird geladen…
Hinweis anzeigen

Assegna il nome (?<tag>\w+) e chiudilo con \k<tag>.

Lösung nach 3 Versuchen verfügbar