🧩
← Torna alle guide

Regex per principianti: come scrivere espressioni regolari

· Tag: regex-beginners, regular-expression-guide, regex-tutorial, regex-patterns, learn-regex

Regex per principianti

Le espressioni regolari — regex — sono pattern che descrivono il testo. Con la regex puoi cercare stringhe, validare input, estrarre dati ed eseguire complesse operazioni di trova-e-sostituisci usando una singola espressione compatta. Una volta comprese le basi, la regex diventa uno degli strumenti più potenti nel tuo kit di strumenti di programmazione.

Che cos'è un'espressione regolare?

Una regex è una sequenza di caratteri che definisce un pattern di ricerca. Il pattern \d{3}-\d{2}-\d{4} corrisponde a un numero di previdenza sociale statunitense: tre cifre, trattino, due cifre, trattino, quattro cifre.

I motori regex esistono in praticamente ogni linguaggio di programmazione — JavaScript, Python, Java, Ruby, Go — tutti con supporto integrato.

Caratteri letterali

La maggior parte dei caratteri corrisponde a se stessa. Il pattern cat trova la stringa letterale "cat" ovunque appaia.

Pattern: cat
Matches: "cat" in "The cat sat on the mat."
Matches: "cat" in "catalog"

La corrispondenza letterale è semplice ma limitata. Il vero potere arriva dai metacaratteri.

Metacaratteri

Questi caratteri hanno un significato speciale e devono essere preceduti da \ per essere trovati letteralmente:

. ^ $ * + ? { } [ ] \ | ( )

Classi di caratteri

Le classi di caratteri trovano un carattere da un insieme.

Notazione con parentesi quadre

| Pattern | Corrispondenze | |---------|---------| | [aeiou] | Qualsiasi vocale | | [0-9] | Qualsiasi cifra | | [a-zA-Z] | Qualsiasi lettera | | [^0-9] | Qualsiasi carattere che NON è una cifra |

Classi predefinite

| Scorciatoia | Descrizione | |-----------|-------------| | \d | Qualsiasi cifra (come [0-9]) | | \w | Lettera, cifra o trattino basso | | \s | Spazio, tabulazione, nuova riga | | \D | Qualsiasi non-cifra | | \W | Qualsiasi carattere non alfanumerico | | \S | Qualsiasi non-spazio | | . | Qualsiasi carattere tranne la nuova riga |

Quantificatori

I quantificatori controllano quante volte l'elemento precedente deve apparire.

| Quantificatore | Significato | Esempio | Corrispondenze | |------------|---------|---------|---------| | * | Zero o più | a* | "", "a", "aa" | | + | Uno o più | a+ | "a", "aa", "aaa" | | ? | Zero o uno | colou?r | "color", "colour" | | {3} | Esattamente N | \d{3} | "123" | | {2,4} | Tra N e M | \d{2,4} | "12", "123", "1234" |

Esempi

\d+     → "42" in "Answer is 42"
https?://  → "http://" and "https://"

Ancore

Le ancore corrispondono a posizioni, non a caratteri.

| Ancoraggio | Significato | |--------|---------| | ^ | Inizio della stringa | | $ | Fine della stringa | | \b | Confine di parola | | \B | Confine di non-parola |

^hello   → matches "hello" only at the start
end$     → matches "end" only at the end
\bword\b → matches "word" as a whole word, not inside "sword"

Gruppi e alternanza

Gruppi di cattura ( ) estraggono le parti corrispondenti:

(\d{3})-(\d{4}) → "555-1234", captures "555" in group 1, "1234" in group 2

Gruppi non di cattura (?: ) raggruppano senza estrarre:

(?:https?|ftp):// → "http://", "https://", "ftp://"

Alternanza | funziona come OR:

cat|dog|bird → matches "cat", "dog", or "bird"

Esempi pratici di regex

| Caso d'uso | Pattern | |----------|---------| | Telefono USA | \d{3}-\d{3}-\d{4} | | Email (semplice) | \S+@\S+\.\S+ | | Indirizzo IP | \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} | | Hashtag | #[a-zA-Z]\w* | | Ora (HH:MM) | [01]\d|2[0-3]:[0-5]\d |

Come testare un pattern regex

Testa sempre i pattern in modo interattivo:

  1. Inserisci il tuo pattern regex.
  2. Inserisci una stringa di prova.
  3. Osserva quali porzioni corrispondono in tempo reale.
  4. Modifica e ripeti.

Usa lo strumento di test regex per sperimentare con i pattern. Evidenzia le corrispondenze, mostra i gruppi di cattura e ti aiuta a capire esattamente cosa fa ogni parte della tua espressione.

Regex per principianti: come scrivere espressioni regolari - CoolTool