Skip to content
Cheatsheet delle Regex
Tools

Cheatsheet delle Regex

Novità

Riferimento ricercabile dei token e dei flag delle espressioni regolari.

Live regex tester

Type a pattern and a test string — matches highlight instantly, with every capture group broken out below.

/ /
Flags
Matches
Capture groups

Common regex patterns

Battle-tested patterns — load one into the tester to see it run, or copy it straight out.

Email address
[\w.+-]+@[\w-]+\.[\w.-]+
URL (http/https)
https?:\/\/[^\s]+
US phone number
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Date (YYYY-MM-DD)
(\d{4})-(\d{2})-(\d{2})
Time (24-hour)
([01]?\d|2[0-3]):[0-5]\d
IPv4 address
\b(?:\d{1,3}\.){3}\d{1,3}\b
Hex color
#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b
Slug / username
[a-z0-9]+(?:-[a-z0-9]+)*
Whole number / integer
-?\d+
Strong password (8+, mixed)
(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}
Duplicate word
\b(\w+)\s+\1\b
Trailing whitespace
[ \t]+$

Regex cheat sheet

Every token, grouped with a quick example. Search by symbol or keyword; click any token to copy it.

Regex flavors: JavaScript, Python, Java, PCRE & grep

The tester above runs JavaScript regex. Most syntax is shared — here's what differs between engines.

FeatureJavaScriptPython (re)JavaPCRE / grep
Named group(?<name>…)(?P<name>…)(?<name>…)(?P<name>…)
Dotall (. matches \n)s flagre.DOTALL / (?s)Pattern.DOTALL(?s)
Ignore casei flagre.IGNORECASE / (?i)(?i) flag(?i) / grep -i
Lookbehind(?<=…) ES2018+SupportedSupportedgrep -P only
Backslash in source/\d/ literalr"\d" raw string"\\d" doubled\d
Find every matchstr.matchAll(/…/g)re.findall()Matcher.find()grep -o
POSIX class [[:digit:]]use \d insteaduse \d insteadsupportedsupported

Runs entirely in your browser. Nothing is uploaded.

Un regex cheat sheet con esempi — e un tester live

Questo regex cheat sheet mette ogni token delle espressioni regolari a portata di ricerca — abbinandolo a un tester live per provare un pattern nel momento stesso in cui lo consulti. Scrivi un pattern, scegli i flag, incolla una stringa di test e le corrispondenze vengono evidenziate all'istante mentre ogni gruppo di cattura viene mostrato separatamente.

Non c'è nulla da installare e nessun account da creare: l'intero riferimento per le espressioni regolari gira nel tuo browser, quindi il testo che testi non viene mai caricato. Niente pubblicità, nessun login obbligatorio, nessun limite alla dimensione delle stringhe di test.

Tutti i token regex, raggruppati con esempi

Il riferimento copre la sintassi che usi davvero: classi di caratteri (\d, \w, \s e set personalizzati come [a-z]), ancore e confini (^, $, \b), quantificatori (*, +, ?, {n,m} e le loro versioni lazy), gruppi e alternanza, lookahead e lookbehind, i flag g i m s u y, e gli escape necessari per punti e slash letterali.

Ogni voce include un esempio breve e concreto — \bcat\b corrisponde alla parola 'cat' ma non a 'category' — così il significato rimane impresso. Cerca i token regex per simbolo o parola chiave e clicca su uno qualsiasi per copiarlo.

Testa il tuo pattern mentre lo costruisci

I cheat sheet statici non possono dirti se il tuo pattern funziona davvero. Il tester regex integrato compila la tua espressione in tempo reale, evidenzia ogni corrispondenza nel testo di esempio e mostra i gruppi di cattura numerati e nominati per ciascuna.

Attiva i flag global, case-insensitive, multiline, dotall, Unicode e sticky e osserva i risultati cambiare. Se un pattern non è valido ottieni un messaggio di errore comprensibile invece di un fallimento silenzioso — e vedere un pattern che funziona in tempo reale è il modo più rapido per imparare le regex.

Pattern regex comuni, pronti da copiare

Alcuni pattern tornano continuamente — indirizzi email, URL, numeri di telefono, date ISO, indirizzi IPv4, colori esadecimali e controlli di password robuste. La sezione Pattern comuni ti fornisce una versione collaudata di ciascuno: caricala direttamente nel tester per vederla girare su testo di esempio, oppure copiala nel tuo codice.

Sono punti di partenza pratici da adattare anziché regole universali — ecco esattamente perché testarli sui tuoi dati reali è fondamentale.

Come si confronta con regex101.com e regexr.com

regex101.com è lo strumento regex dedicato più popolare sul web — e per ottime ragioni. Supporta sei versioni di regex (PCRE, Python re, Golang, Java, .NET e JavaScript), mostra un pannello di spiegazione token per token e tiene traccia della cronologia delle corrispondenze. Se stai eseguendo il debug di un pattern di produzione complesso o devi verificare che un pattern si comporti allo stesso modo in PHP e Python, regex101 è lo strumento giusto. regexr.com offre un'esperienza simile con una libreria pubblica di pattern condivisi dalla community.

Questa pagina di UtiloKit si colloca in un punto diverso del flusso di lavoro. Combina una tabella di riferimento dei token ricercabile con un tester live sulla stessa schermata, ottimizzata per la situazione comune in cui sai all'incirca cosa ti serve ma non ricordi la sintassi esatta. Arrivi, cerchi il token, incolli una stringa di test rapida e torni al tuo editor — senza cambiare tab, senza account, senza pubblicità. Per gli sviluppatori che aprono regex101.com decine di volte al giorno solo per ricordare se il lookbehind usa (?<=…) o (?<!…), avere un riferimento ricercabile dedicato è misurabilmente più veloce. Usa entrambi: regex101 per il debug approfondito, questa pagina per le consultazioni rapide.

Varianti regex: JavaScript, Python, Java, PCRE e grep

La maggior parte della sintassi regex è portabile, ma i motori differiscono nei dettagli. Il tester usa JavaScript regex, la stessa versione di Node.js e del browser. Il modulo Python re richiede raw string come r"\d+" e nomina i gruppi con (?P<nome>…); Java necessita di doppi backslash nei letterali stringa; PCRE (PHP e grep -P) è il più completo di funzionalità; e POSIX grep -E ha le proprie particolarità di escaping.

La tabella delle varianti evidenzia gruppi nominati, dotall, case-insensitivity, lookbehind e 'trova tutto' per ogni motore, così puoi trasferire un pattern da Python a JavaScript — o viceversa — senza sorprese.

Greedy vs lazy e altre insidie comuni

Due cose mettono in difficoltà quasi tutti. Prima: i quantificatori sono greedy (avidi): .+ cattura il più possibile, quindi per trovare un singolo tag HTML di solito conviene usare la versione lazy .+?. Seconda: dimenticarsi di eseguire l'escape dei metacaratteri — un . semplice corrisponde a qualsiasi carattere, mentre \. corrisponde a un punto letterale, quindi una regex per i prezzi deve usare \d+\.\d{2}.

Tieni aperto il cheat sheet mentre lavori e questi problemi smettono di sorprenderti.

Privato, istantaneo e gratuito

Non c'è nulla da installare e nessun account da creare. Ogni consultazione, ogni corrispondenza e ogni copia avviene localmente nel tuo browser — i tuoi pattern e i tuoi dati di test non lasciano mai il tuo dispositivo. Aggiungi questo regex cheat sheet ai preferiti e consultalo ogni volta che devi ricordare un token o verificare rapidamente un pattern.

Frequently asked questions

Cos'è un'espressione regolare? Esempio pratico

Un'espressione regolare (regex) è un pattern compatto che descrive un insieme di stringhe, usato per cercare, trovare corrispondenze e sostituire testo. Ad esempio, il pattern \d{3}-\d{4} corrisponde a un frammento di numero di telefono come 555-1234, perché \d significa 'una cifra' e {3} significa 'esattamente tre di esse'. Le regex sono alla base di trova-e-sostituisci, validazione dei form e analisi dei log in quasi ogni linguaggio di programmazione e editor di codice. Il tester live in cima a questa pagina ti permette di provare qualsiasi pattern all'istante.

Quali sono i token base delle regex?

Gli elementi fondamentali sono: . (qualsiasi carattere tranne newline), \d (una cifra), \w (un carattere alfanumerico — lettera, cifra o underscore), \s (spazio bianco), le ancore ^ (inizio) e $ (fine), e i quantificatori * (zero o più), + (uno o più) e ? (opzionale). Quindi \w+ corrisponde a un'intera parola e \d+ a un numero intero come 2024. Combinali — ^\d+$ corrisponde a una riga composta solo da cifre. Ogni token in questo cheat sheet include un esempio copiabile.

Cosa significano \d, \w e \s nelle regex?

\d corrisponde a qualsiasi cifra da 0 a 9; \w corrisponde a un carattere alfanumerico (a–z, A–Z, 0–9 o _); \s corrisponde a spazio bianco (spazio, tab o newline). Le versioni maiuscole sono le negazioni: \D è un non-numero, \W un carattere non alfanumerico e \S un non-spazio. Ad esempio, nel testo 'a5 b', \d corrisponde a 5, \w corrisponde ad a, 5 e b, e \s corrisponde allo spazio tra loro. Queste tre classi abbreviate coprono la grande maggioranza dei pattern regex di uso quotidiano.

Cosa sono le ancore nelle espressioni regolari?

Le ancore corrispondono a una posizione anziché a un carattere. ^ corrisponde all'inizio della stringa (o di ogni riga con il flag m), $ corrisponde alla fine, \b corrisponde a un confine di parola e \B a un non-confine. Ad esempio, ^\d+$ corrisponde a una stringa composta solo da cifre, e \bcat\b corrisponde alla parola 'cat' ma non alla 'cat' dentro 'category'. Le ancore sono spesso fraintese come caratteri corrispondenti — in realtà corrispondono a posizioni nel testo, non a caratteri specifici.

Cosa sono i quantificatori nelle regex?

I quantificatori indicano quante volte il token precedente può ripetersi: * è zero o più, + è uno o più, ? è zero o uno (opzionale), {n} è esattamente n, {n,} è n o più, e {n,m} è tra n e m. Sono greedy per impostazione predefinita (corrispondono al massimo possibile); aggiungi un ? per renderli lazy. Ad esempio \d{1,3} corrisponde da 1 a 3 cifre, e il lazy .+? corrisponde al minimo possibile. I quantificatori lazy sono essenziali quando si trovano tag HTML o stringhe tra virgolette.

Cosa sono i gruppi e i gruppi di cattura?

Le parentesi (…) creano un gruppo di cattura che puoi estrarre o riutilizzare — (\d{4})-(\d{2}) cattura l'anno nel gruppo 1 e il mese nel gruppo 2 di '2024-06'. Usa (?:…) per un gruppo non-catturante quando hai bisogno di raggruppare solo per un quantificatore, e (?<nome>…) per un gruppo nominato come (?<anno>\d{4}). Un backreference come \1 corrisponde nuovamente a ciò che il gruppo 1 ha catturato, quindi (\w)\1 trova una lettera doppia — le 'll' in 'hello'.

Cosa sono lookahead e lookbehind?

I lookaround verificano che del testo sia (o non sia) adiacente alla corrispondenza senza consumarlo. (?=…) è un lookahead positivo, (?!…) un lookahead negativo, (?<=…) un lookbehind positivo e (?<!…) un lookbehind negativo. Ad esempio, \d+(?=px) corrisponde al 5 in '5px' ma esclude il 'px', e (?<=€)\d+ corrisponde al 9 in '€9' richiedendo un segno euro precedente. I lookaround sono una delle funzionalità che distinguono i motori regex moderni dal POSIX grep.

Cosa sono i flag delle espressioni regolari?

I flag cambiano il modo in cui l'intero pattern viene applicato: g (global) trova ogni corrispondenza, i rende la ricerca case-insensitive, m (multiline) fa sì che ^ e $ corrispondano a ogni riga, s (dotall) permette a . di corrispondere ai newline, u abilita il pieno supporto Unicode e y (sticky) ancella la ricerca a una posizione fissa. In JavaScript li aggiungi dopo lo slash di chiusura, quindi /cat/gi corrisponde a 'Cat' e 'CAT' ovunque nel testo. Il tester su questa pagina ha pulsanti di attivazione per ogni flag così puoi vederne l'effetto in tempo reale.

Come scrivo una regex per email, numero di telefono o URL?

Pattern pratici di partenza: email — [\w.+-]+@[\w-]+\.[\w.-]+ ; URL — https?:\/\/[^\s]+ ; telefono italiano — \+?39?[\s.-]?\d{2,4}[\s.-]?\d{6,8}, che gestisce formati come +39 02 1234567 e 347-1234567. Questi sono pratici, non esaustivi — lo standard ufficiale per le email è molto più complesso — quindi testali sempre sui tuoi dati reali con il tester live in cima alla pagina, dove ciascuno è accessibile con un clic nell'elenco Pattern comuni.

Come si esegue l'escape dei caratteri speciali nelle regex?

Metti un backslash davanti a qualsiasi metacarattere per trovare la sua corrispondenza letterale. I caratteri che di solito richiedono l'escape sono . ^ $ * + ? ( ) [ ] { } | \ e /. Ad esempio \. corrisponde a un punto letterale e \$ a un segno dollaro, quindi \d+\.\d{2} corrisponde a un prezzo come 19,99. All'interno di una classe di caratteri la maggior parte di questi perde il suo significato speciale, quindi [.] corrisponde anche a un punto letterale senza escape.

Le regex differiscono tra JavaScript, Python e Java?

La sintassi di base è condivisa, ma i dettagli differiscono. JavaScript nomina i gruppi con (?<nome>…) mentre Python usa (?P<nome>…); Python usa raw string come r"\d+" e Java richiede doppi backslash nei letterali stringa ("\\d+"). Dotall è il flag s in JS, re.DOTALL in Python e Pattern.DOTALL in Java. La tabella delle varianti su questa pagina riassume le differenze per Python, Java, PCRE e grep così puoi trasferire un pattern da un linguaggio all'altro con sicurezza.

Come funzionano le espressioni regolari in Python?

In Python, le espressioni regolari si trovano nel modulo built-in re. Di solito scrivi il pattern come raw string e chiami funzioni come re.search, re.findall o re.sub — ad esempio re.findall(r"\d+", "a1 b22") restituisce ['1', '22']. I gruppi nominati usano (?P<nome>…) e si leggono con match.group('nome'). Il riferimento ai token su questa pagina si applica direttamente alle regex Python; differiscono solo l'API circostante e alcuni nomi di flag rispetto a JavaScript.

Come si testa una regex?

Usa il tester live in cima a questa pagina: scrivi il tuo pattern tra gli slash, attiva i flag che ti servono e incolla una stringa di test. Le corrispondenze vengono evidenziate in tempo reale, ogni gruppo di cattura numerato e nominato viene mostrato separatamente, e un pattern non valido mostra un messaggio di errore comprensibile invece di fallire silenziosamente — tutto gira localmente nel tuo browser, quindi nulla di ciò che incolli viene caricato. Strumenti come regex101.com e regexr.com funzionano in modo simile; questo combina riferimento e tester in un'unica pagina.

Come si confronta con regex101.com e regexr.com?

regex101.com è lo standard del settore per il debug approfondito delle regex — supporta più varianti (PCRE, Python, Java, .NET, Golang) e fornisce una spiegazione dettagliata di ogni token nel tuo pattern. regexr.com offre un'esperienza simile con una libreria pubblica di pattern. Entrambi sono eccellenti strumenti dedicati. Questo cheat sheet di UtiloKit è diverso: abbina una tabella di riferimento dei token con un tester live di base sulla stessa pagina, così puoi cercare qualcosa e verificarlo in pochi secondi senza cambiare tab. Per lavori regex di produzione complessi, il confronto tra varianti e il debugger dettagliato di regex101.com sono difficili da battere; per consultazioni rapide durante lo sviluppo, questa pagina di riferimento si carica più velocemente e non richiede navigazione.

Perché si chiamano espressioni regolari?

Il nome viene dalla teoria dei linguaggi formali. Negli anni '50 il matematico Stephen Kleene descrisse i 'linguaggi regolari' — linguaggi che una semplice macchina a stati finiti può riconoscere — e la notazione che usò per descriverli divenne nota come espressione regolare. I moderni motori regex aggiungono funzionalità come backreference e lookaround che vanno oltre i linguaggi strettamente 'regolari', ma il nome storico è rimasto.