Panoramica
Riferimento pratico per l’uso sicuro e portabile delle espressioni regolari.
Nessun flag di contesto ((?s), (?m), (?i)), solo pattern compatibili tra sistemi e strumenti diversi.
Differenze di newline tra ambienti
| OS |
Codice newline |
Pattern consigliato |
Nota |
| Windows |
\r\n |
\r?\n |
Compatibile con CRLF/LF |
| macOS / Linux |
\n |
\r?\n |
Unico pattern per entrambi |
Nota chiave:
- Usa sempre
\r?\n per rilevare o sostituire newline in modo cross-platform.
- Per catturare blocchi che includono newline, usa
(?:.|\r|\n) (dato che . non cattura newline).
Parte 1: Sintassi di base (Tabella compatta)
1-1. Classi di caratteri e intervalli
| Sintassi |
Significato |
Esempio |
Risultato |
. |
Qualsiasi carattere eccetto newline |
a.c / abc |
abc |
[abc] |
Uno tra a, b, c |
bag |
a |
[^0-9] |
Qualsiasi non cifra |
a1 |
a |
[A-Z0-9] |
Lettera maiuscola o numero |
X8z |
X,8 |
1-2. Quantificatori
| Sintassi |
Significato |
Esempio |
Risultato |
* |
0 o più ripetizioni |
goooogle |
goooo |
+ |
1 o più ripetizioni |
google |
oo |
? |
0 o 1 ripetizione |
color colour |
entrambi |
{n} |
Esattamente n volte |
a{3} / aaa |
aaa |
{n,} |
Almeno n volte |
a{2,} / aaaa |
aaaa |
{n,m} |
Da n a m volte |
a{2,4} / aaaaa |
aaaa |
1-3. Ancore di posizione
| Sintassi |
Significato |
Esempio |
Risultato |
^abc |
Inizio linea |
abc\nzabc |
abc (prima linea) |
abc$ |
Fine linea |
zabc\nabc |
entrambi i abc finali |
\bword\b |
Parola isolata |
word words |
word |
\Bing |
Non ai confini di parola |
ringing |
seconda ing |
1-4. Abbreviazioni e metacaratteri
| Sintassi |
Significato |
Esempio |
Risultato |
\d |
Cifra [0-9] |
ver2.10 |
2,10 |
\D |
Non cifra |
a1 |
a |
\w |
Lettera, cifra o underscore |
a_b-1 |
a_b |
\W |
Non alfanumerico |
a# |
# |
\s |
Spazio/tab/newline |
a b |
spazio |
\S |
Non spazio |
a b |
a,b |
\t |
Tabulazione |
a\tb |
a[TAB]b |
1-5. Escape di caratteri speciali
| Sintassi |
Significato |
Esempio |
Risultato |
\. |
Punto letterale |
a.c |
a.c |
\* |
Asterisco letterale |
a*b |
a*b |
\+ |
Segno + |
a+b |
a+b |
\? |
Punto interrogativo |
what? |
what? |
\( \) |
Parentesi |
(test) |
(test) |
| |
Barra verticale |
`a |
b` |
\\ |
Backslash |
C:\\path |
\\ |
\^ |
Accento circonflesso |
^abc |
^abc |
\$ |
Simbolo $ |
total$ |
$ |
\[ \] |
Parentesi quadre |
[abc] |
[abc] |
\{ \} |
Parentesi graffe |
{a,b} |
{a,b} |
Parte 2: Gruppi, alternative e lookaround
| Sintassi |
Scopo |
Esempio |
Risultato |
(abc)+ |
Ripetizione di gruppo |
abcabcx |
abcabc |
| `(?:jpg |
png)` |
OR non catturante |
file.png |
| `foo |
bar` |
Alternativa |
bar |
\d+(?=€) |
Cifre prima di € |
Totale 100€ |
100 |
^(?!.*error).* |
Linee senza "error" |
ok\nerror |
ok |
(?<=€)\d+ |
Cifre dopo € |
€300 |
300 |
(?<!Mr\.)\s[A-Z] |
Maiuscola non preceduta da “Mr.” |
Ms. Alice |
A |
Parte 3: Pattern multilinea
| Scopo |
Pattern |
Esempio |
Risultato |
| Blocco HTML |
`<div>(?:. |
\r |
\n)*?</div>` |
| Log tra timestamp |
`^[\d{4}-\d{2}-\d{2} [\d:]+](?:. |
\r |
\n)*?(?=^[\d{4}-\d{2}-\d{2} |
| Blocco di codice Markdown |
“ “`(?:. |
\r |
\n)*?“` “ |
| Commento multilinea |
`/*(?:. |
\r |
\n)*?*/` |
Parte 4: Pattern utili (estrazioni e negazioni)
| Scopo |
Pattern |
Esempio |
Risultato |
| Solo cifre |
^\d+$ |
123 |
123 |
| Solo alfanumerico |
^[A-Za-z0-9]+$ |
user01 |
user01 |
| Email (semplice) |
^[\w.-]+@[\w.-]+\.[A-Za-z]{2,}$ |
a@b.com |
a@b.com |
| URL |
https?://[\w.-]+\.[A-Za-z]{2,}(/[\w./?=&%-]*)? |
https://ex.com/a |
https://ex.com/a |
| Data ISO |
\d{4}-\d{2}-\d{2} |
2025-10-30 |
2025-10-30 |
| Numero telefonico internazionale |
\+\d{1,3}[\s-]?\d{1,14} |
+39 340 123 4567 |
intero numero |
| Password robusta |
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$ |
Abcd1234 |
completa |
| Commento HTML |
`<!–(?:. |
\r |
\n)*?–>` |
| Linee senza "error" |
^(?!.*error).* |
ok\nerror |
ok |
Parte 5: Esempi di sostituzione
| Operazione |
Pattern |
Sostituzione |
Input |
Output |
| Invertire parole |
(\w+)\s+(\w+) |
${2} ${1} |
John Doe |
Doe John |
| Cambiare separatore |
; |
, |
a;b;c |
a,b,c |
| Unificare spazi multipli |
\s{2,} |
|
a b |
a b |
| Rimuovere tag HTML |
<[^>]+> |
“ |
<p>a</p> |
a |
| Trim spazi |
`^\s+ |
\s+$` |
“ |
a |
| Newline → spazio |
\r?\n |
|
a\nb |
a b |
Rimuovere commenti // |
//.*$ |
“ |
x=1;//note |
x=1; |
| Uniformare date |
(\d{4})/(\d{2})/(\d{2}) |
${1}-${2}-${3} |
2025/10/30 |
2025-10-30 |
| Comprimere righe duplicate |
^(.*)(\r?\n\1)+$ |
${1} |
righe identiche |
singola riga |
Conclusione
Le espressioni regolari sono strumenti potenti e portabili, utili per analisi log, pulizia dati e automazione testuale in ambienti multipiattaforma.