Skip to content

Schema delle espressioni regolari (Regex)

Corrispondenza caratteri

[abc] Corrisponde a qualsiasi carattere tra a, b o c
[^abc] Non corrisponde a nessuno dei caratteri a, b o c. “^” è efficace solo come primo carattere
[a-g] Corrisponde a qualsiasi carattere nell’intervallo a-g
[^a-g] Non corrisponde a nessuno dei caratteri nell’intervallo a-g
[H-N] Corrisponde a qualsiasi carattere nell’intervallo H-N
[0-9] Corrisponde a qualsiasi cifra nell’intervallo 0-9
[a-gH-N] Corrisponde a qualsiasi carattere negli intervalli a-g o H-N
Caratteri jolly:
. [^\n\r], corrisponde a qualsiasi carattere eccetto l’andata a capo
\s spazio, caratteri vuoti (andata a capo, tabulazione, spazio, ecc.)
\S [^\s], qualsiasi carattere non vuoto
\d cifra: [0-9]
\D [^\d], qualsiasi carattere non numerico
\w parola: [0-9A-Za-z_]
\W [^\w], qualsiasi carattere non di parola

Corrispondenza gruppi

(a b)
(…) Gruppo di cattura
(?:…) Gruppo senza cattura
(?…) o (?’name’…) Gruppo di cattura con nome (il nome può essere personalizzato)
(?(condition)true false)

group(0) viene utilizzato per ottenere il risultato dell’intera stringa di corrispondenza, mentre group(>0) può ottenere i sottogruppi di cattura dall’intero risultato.

Nota: i gruppi di cattura con nome sono supportati da Java 1.7+ (passando il nome come stringa al metodo group). JS e Python non lo supportano temporaneamente in tutti gli ambienti.

Intervalli di frequenza (Quantificatori)

{3} L’elemento precedente appare esattamente 3 volte, equivalente a {3,3}
{3,6} L’elemento precedente appare da 3 a 6 volte
{3,} L’elemento precedente appare almeno 3 volte
{0,6} L’elemento precedente appare al massimo 6 volte
Caratteri jolly:
* {0,} Zero o più
+ {1,} Uno o più
? {0,1} Zero o uno
\w* Modalità greedy
\w*? Modalità non greedy (lazy)

Ancore (Delimitatori)

^ Inizio della stringa
$ Fine della stringa
\b boundary, confine della parola
\B Non confine della parola
Asserzioni di posizione:
(?=exp) Lookahead positivo (il suffisso è exp)
(?<=exp) Lookbehind positivo (il prefisso è exp)
(?!exp) Lookahead negativo (non ha il suffisso exp)
(?<!exp) Lookbehind negativo (non ha il prefisso exp)

\b(\w+)\b è equivalente a (?<=\W?)(\w+)(?=\W?)