Vai al contenuto
Allin

Basi delle regex: guida per principianti

Pubblicato il 10/10/2025 · 3 min di lettura · Strumenti per sviluppatori

Daniel Okonkwo

Daniel OkonkwoSviluppatore front-end e redattore Tech presso Allin

Performance web · Formati di file

Verificato su 2 fonti

Vedi il profilo
In breve

Un'espressione regolare (regex) è un modello per cercare testo. L'essenziale: i caratteri letterali rappresentano sé stessi, . corrisponde a qualsiasi carattere, \d a una cifra, \w a un carattere di parola, \s a uno spazio; * significa zero o più, + uno o più, ? opzionale; [abc] corrisponde a uno dei caratteri elencati, ^ e $ ancorano a inizio e fine. Così \d{3}-\d{4} corrisponde a un numero come 555-1234.

Un'espressione regolare è un modello per cercare testo. Ecco i mattoni — classi di caratteri, quantificatori e ancore — con un esempio.

A cosa servono le regex

Un'espressione regolare descrive un modello invece di una stringa esatta, il che permette di cercare, validare, estrarre e sostituire testo con molta più flessibilità. Invece di cercare un numero fisso, descrivi la forma di qualsiasi numero e li trovi tutti. Alimentano il trova-sostituisci negli editor, la validazione dei moduli e l'estrazione di dati da log e testi.

I mattoni di base

La maggior parte di un modello è testo letterale che rappresenta sé stesso. Dove il testo varia, usi classi di caratteri: \d corrisponde a una cifra, \w a un carattere di parola (lettere, cifre, underscore), \s a uno spazio, e il punto . a quasi qualsiasi singolo carattere. Un insieme tra parentesi quadre come [aeiou] corrisponde a uno dei caratteri elencati, e [^0-9] a tutto tranne quelli.

Quantificatori e ancore

I quantificatori dicono quante volte l'elemento precedente può ripetersi: * zero o più, + uno o più, ? opzionale (zero o uno), e {3} esattamente tre, {2,4} tra due e quattro. Le ancore fissano la corrispondenza: ^ segna l'inizio del testo e $ la fine, così ^abc$ corrisponde solo alla stringa esatta 'abc'. Le parentesi ( ) raggruppano parti.

Un esempio svolto

Per trovare un numero come 555-1234, descrivi la sua forma: tre cifre, un trattino, quattro cifre. È \d{3}-\d{4}. Per consentire anche un prefisso opzionale tra parentesi, puoi estenderlo passo dopo passo, testando man mano. Nota che i quantificatori sono golosi per impostazione predefinita — prendono il più possibile — cosa da ricordare quando i modelli si allungano.

Tester regexProva un'espressione regolare e vedi cosa fa: corrispondenze evidenziate nel testo, ogni gruppo catturato elencato, un pannello di sostituzione e il pattern riletto pezzo per pezzo. I flag sono pulsanti che dicono cosa cambiano, e un pattern capace di bloccare la pagina è segnalato prima di essere eseguito.Prova lo strumento

Domande frequenti

Cosa significa \d nelle regex?
Corrisponde a una cifra, da 0 a 9. Così \d{3} corrisponde a esattamente tre cifre di seguito.
Differenza tra * e +?
* corrisponde a zero o più dell'elemento precedente, + a uno o più — quindi + richiede almeno un'occorrenza.
Le regex sono uguali in ogni linguaggio?
La sintassi di base è condivisa, ma dettagli e varianti differiscono tra JavaScript, Python, PCRE e altri — controlla la documentazione del tuo linguaggio per i casi limite.

Articoli che potrebbero interessarti

Tutte le guide
ConfrontoJSON vs XML: qual è la differenza?JSON e XML memorizzano entrambi dati strutturati come testo, ma con compromessi diversi. Ecco come appare ciascuno, dove vince ciascuno e come scegliere.GuidaTrova e sostituisci: le trappole delle espressioni regolari, dimostrate una per unaGoloso contro pigro sulla stessa stringa, il punto che salta gli a capo, $& e $$ nella sostituzione, una regex /g riusata che salta una riga in silenzio, e perché /i non sa nulla della i turca. Ogni guasto eseguito in Node, con una routine conta-poi-sostituisci che li intercetta.SpiegazioneEstrarre tutti gli indirizzi email o URL da un blocco di testoUn URL a fine frase si tiene il punto; un indirizzo email a fine della stessa frase no. Un nome accentato dentro un indirizzo torna troncato. Ogni caso qui è stato passato negli strumenti e l'output esatto è riportato.SpiegazionecamelCase vs snake_case: guida alle convenzioni di denominazione nel codicecamelCase, snake_case, PascalCase e kebab-case spiegati: come appare ciascuno, dove è la convenzione e come sceglierne uno con coerenza.SpiegazioneFare l'escape di una stringa per JSON: tre caratteri sono obbligatori, e uno è una trappolaLa RFC 8259 impone l'escape di esattamente tre cose dentro una stringa JSON. Tutto il resto è facoltativo. Ciò che rompe davvero le pipeline è un surrogato spaiato: legale nel testo JSON, impossibile in UTF-8, e sostituito in silenzio non appena i tuoi dati vengono scritti.SpiegazioneDa XML a JSON: attributi, ripetizione e la trappola dell'array a un solo elementoDue documenti che differiscono solo per quanti figli esistono producono due forme JSON diverse, e senza uno schema nessun convertitore può distinguerli. Più ciò che questo fa davvero con attributi, contenuto misto e spazi — e l'unica cosa che continua a non poter registrare.

Strumenti correlati

Fonti

Hai notato un errore in questo articolo?