Vai al contenuto
eLearner.app
Modulo 4 · Lezione 1 di 413/32 nel corso~10 min
Lezioni del modulo (1/4)

Gruppi di cattura: `(...)`

Le parentesi tonde (...) hanno due funzioni in una:

  1. Raggruppare sotto-pattern, cosi' un quantificatore si applica all'intero gruppo ((ab)+ matcha ab, abab, ababab).
  2. Catturare la sotto-stringa matchata, esponendola come gruppo numerato accessibile separatamente (gruppo 1, 2, 3\u2026 da sinistra a destra in base alla parentesi aperta).
Code
Pattern: (\d{4})-(\d{2})-(\d{2})
Sample:  Data: 2024-03-15.
               ^^^^^^^^^^
Gruppi:
  match  = "2024-03-15"
  gruppo1 = "2024"
  gruppo2 = "03"
  gruppo3 = "15"

L'editor a destra ti mostra i gruppi sotto ogni match.

Quantificare un gruppo

Senza parentesi, ab+ significa "a seguito da una o piu' b". Con parentesi diventa "uno o piu' ab":

Code
Pattern   Matcha su 'ababab':
ab+       'ab' (poi 'a' e 'b' separati, non collegati)
(ab)+     'ababab' come gruppo unico

Istanze e indici dei gruppi di cattura

Ogni coppia di parentesi tonde non preceduta da caratteri speciali crea un gruppo di cattura numerato. Il gruppo 1 corrisponde alla prima parentesi aperta, il gruppo 2 alla seconda e così via. In JavaScript, puoi accedere ai gruppi tramite l'array restituito da exec o matchAll.

Prova tu

Esercizio#regex.m4.l1.e1
Tentativi: 0Caricamento…

Trova ogni data in formato YYYY-MM-DD, catturando anno, mese e giorno come tre gruppi separati.

Caricamento editor…
Mostra suggerimento

Avvolgi ognuno dei tre blocchi di cifre fra parentesi: ognuna crea un gruppo numerato.

Soluzione disponibile dopo 3 tentativi

Esercizio di ripasso

Esercizio#regex.m4.l1.e2
Tentativi: 0Caricamento…

Trova ogni ripetizione di `ab` (uno o piu') come singolo match. Senza parentesi, il quantificatore si applicherebbe solo all'ultima `b`.

Caricamento editor…
Mostra suggerimento

(ab)+ tratta 'ab' come unita' e cerca una o piu' ripetizioni consecutive.

Soluzione disponibile dopo 3 tentativi

Sfida aggiuntiva

Esercizio#regex.m4.l1.e3
Tentativi: 0Caricamento…

Crea tre gruppi di cattura per estrarre giorno, mese e anno separatamente da date nel formato `GG/MM/AAAA`.

Caricamento editor…
Mostra suggerimento

Racchiudi ciascun \d{2} o \d{4} tra parentesi tonde.

Soluzione disponibile dopo 3 tentativi