Przejdź do głównej treści
eLearner.app
Moduł 4 · Lekcja 4 z 416/32 w kursie~12 min
Lekcje modułu (4/4)

Grupy nazwane i referencje wsteczne

Gdy liczba grup wzrośnie, pamiętaj, że $2 to „miesiąc”, a $5 a „rok” staje się kruchy. Składnia (?<nome>...) ti permette di nominare un gruppo: lo accedi per nome via nazwa_grupy (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"

Edytor wyświetla także nazwane grupy obok dopasowania.

Odniesienie wsteczne

Wsteczne odniesienie pozwala na odniesienie się, w ramach tego samego wzorca, do poprzedniego ujęcia. Składnia:

  • \1, \2, \u2026 -- numerowane odniesienie (do grupy 1, 2, \u2026).
  • \k<nome> -- nazwane odniesienie.
Code
Pattern: \b(\w+)\s+\1\b
Sample:  un test un test il il gatto
                                ^^^^^

Matcha kolejne zduplikowane słowa: (\w+) łapie słowo, a następnie \s+\1 wymaga spacji i tego samego słowa.

Nazwana dokumentacja własna i odwołanie wsteczne

Nazwane grupy poprawiają czytelność kodu JavaScript: zamiast odwoływać się do match[1], uzyskuje się dostęp do match.groups.nome. We wzorcu odwołanie wstecz odbywa się za pomocą składni \\k<nome>.

Spróbuj sam

Ćwiczenie#regex.m4.l4.e1
Próby: 0Ładowanie...

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

Ładowanie edytora...
Pokaż wskazówkę

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

Rozwiązanie dostępne po 3 próbach

Przejrzyj ćwiczenie

Ćwiczenie#regex.m4.l4.e2
Próby: 0Ładowanie...

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

Ładowanie edytora...
Pokaż wskazówkę

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

Rozwiązanie dostępne po 3 próbach

Dodatkowe wyzwanie

Ćwiczenie#regex.m4.l4.e3
Próby: 0Ładowanie...

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.

Ładowanie edytora...
Pokaż wskazówkę

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

Rozwiązanie dostępne po 3 próbach