Prontuario delle espressioni regolari
Le espressioni regolari (regex) sono pattern per far corrispondere del testo — usate per cerca-e-sostituisci, validazione ed estrazione. La sintassi qui sotto è la variante comune condivisa da JavaScript, Python, PCRE e dalla maggior parte dei motori moderni. Cerca un token qualsiasi per saltarci.
Aggiornato 2026-07-06
Classi di caratteri
| Token | Corrisponde a | Esempio |
|---|---|---|
| . | Qualsiasi carattere tranne un a capo | a.c → abc, a7c |
| \d | Qualsiasi cifra (0–9) | \d\d → 42 |
| \D | Qualsiasi non cifra | \D → a, % |
| \w | Carattere di parola (lettera, cifra, underscore) | \w+ → hello_1 |
| \W | Carattere non di parola | \W → space, ! |
| \s | Spazio bianco (spazio, tab, a capo) | a\sb → a b |
| \S | Non spazio bianco | \S+ → word |
| [abc] | Uno qualsiasi tra a, b o c | [aeiou] → a vowel |
| [^abc] | Qualsiasi carattere tranne a, b, c | [^0-9] → non-digit |
| [a-z] | Qualsiasi carattere nell'intervallo | [a-f] → a…f |
Ancore & confini
| Token | Corrisponde a | Esempio |
|---|---|---|
| ^ | Inizio della stringa (o della riga, in modalità multilinea) | ^Hi → line starting Hi |
| $ | Fine della stringa (o della riga) | end$ → line ending end |
| \b | Confine di parola | \bcat\b → the word cat |
| \B | Non un confine di parola | \Bcat → scatter |
Quantificatori
| Token | Corrisponde a | Esempio |
|---|---|---|
| * | 0 o più del precedente | a* → '', a, aaa |
| + | 1 o più | a+ → a, aaa (not '') |
| ? | 0 o 1 (opzionale) | colou?r → color, colour |
| {n} | Esattamente n volte | \d{4} → 2026 |
| {n,} | n volte o più | \d{2,} → 42, 4200 |
| {n,m} | Tra n e m volte | \d{2,4} → 42 to 4200 |
| *? | Pigro: il meno possibile | <.+?> → shortest match |
Gruppi, alternanza & lookaround
| Token | Corrisponde a | Esempio |
|---|---|---|
| (abc) | Gruppo di cattura | (ab)+ → abab |
| (?:abc) | Gruppo senza cattura | (?:ab)+ → group, no capture |
| (?<name>…) | Gruppo di cattura con nome | (?<year>\d{4}) |
| a|b | Alternanza — a o b | cat|dog → cat, dog |
| \1 | Riferimento al gruppo 1 | (\w)\1 → ll, oo |
| (?=abc) | Lookahead — seguito da abc | \d(?=px) → 5 in 5px |
| (?!abc) | Lookahead negativo — non seguito da | \d(?!px) |
| (?<=abc) | Lookbehind — preceduto da abc | (?<=\$)\d+ → 9 in $9 |
| (?<!abc) | Lookbehind negativo | (?<!\$)\d+ |
Flag
| Token | Corrisponde a | Esempio |
|---|---|---|
| g | Globale — trova tutte le corrispondenze, non solo la prima | /a/g |
| i | Senza distinzione tra maiuscole/minuscole | /abc/i → ABC |
| m | Multilinea — ^ e $ corrispondono agli a capo | /^x/m |
| s | Dotall — . corrisponde anche agli a capo | /a.b/s |
| u | Modalità Unicode | /\u{1F600}/u |
Una nota sull'escape
Per far corrispondere un carattere dal significato speciale — come . * + ? ( ) [ ] { } ^ $ | \ — mettici davanti una barra rovesciata. Per esempio, \. corrisponde a un punto letterale e \$ a un simbolo di dollaro letterale. Quando un pattern non corrisponde a ciò che ti aspetti, un carattere speciale non messo in escape è la causa abituale.
Strumenti correlati