Guida rapida alle regex
Scegli una variante regex
Inizia dal motore che usi. Il riferimento nasconderà la sintassi che non si applica alla scelta.
Usa questo riferimento interattivo per confrontare la sintassi comune delle espressioni regolari prima di incollarla nel codice. Scegli JavaScript, PCRE2/PHP, Python re, .NET o la vista di tutti i motori; quindi seleziona un argomento e cerca tra le voci visualizzate. Il riferimento segnala la sintassi specifica di una famiglia, poiché un token può compilare in un motore ed essere rifiutato o significare altro in un altro. La ricerca e la copia avvengono nel browser e questa pagina non esegue pattern sul tuo testo.
Come usare la guida rapida alle regex
-
1
Scegli un motore
Inizia con JavaScript, PCRE2/PHP, Python re, .NET oppure confrontali tutti. La vista mirata omette le voci che non si applicano al motore selezionato.
-
2
Scegli un argomento
Apri ancore, classi di caratteri, quantificatori, gruppi, lookaround, forme di pattern comuni oppure flag e opzioni.
-
3
Cerca e copia localmente
Cerca token e descrizioni direttamente nella pagina, poi seleziona un token per copiarlo. Il testo di ricerca non viene inviato al server né aggiunto all’URL.
-
4
Verifica nel runtime reale
Usa motore, flag e API del progetto per compilare e testare l’espressione finale. Questo riferimento spiega la sintassi; non convalida dati di produzione.
La compatibilità conta
Le espressioni regolari non sono un unico linguaggio universale. Questa guida separa la sintassi che sembra simile ma non passa pulitamente da un motore all’altro.
| Funzione | JavaScript RegExp | PCRE2 / PHP | Python re |
.NET |
|---|---|---|---|---|
| Inizio assoluto | Nessun \A |
\A |
\A |
\A |
| Fine assoluta | Nessun \z |
\z |
\Z |
\z |
Proprietà Unicode \p{L} |
Usa la modalità u o v |
Supportata | Non nel re integrato |
Supportata |
| Cattura con nome | (?<name>...) |
(?<name>...) o (?P<name>...) |
(?P<name>...) |
(?<name>...) |
| Backreference con nome | \k<name> |
\k<name> o (?P=name) |
(?P=name) |
\k<name> |
| Corrispondenza globale | Flag g più API di ricerca |
API ripetuta come preg_match_all |
API ripetuta come finditer |
API ripetuta come Matches |
\d e \w meritano attenzione. In JavaScript, \d rimane costituito dalle cifre ASCII 0-9 e \w da caratteri di parola essenzialmente ASCII anche con u. Altri motori possono applicare regole Unicode secondo modalità e configurazione. Se il comportamento Unicode è importante, scrivi e testa esattamente la proprietà o la classe necessaria.
Ancore e confini
| Token | Cosa esprime | Nota di portabilità |
|---|---|---|
^ |
Inizio dell’input o di una riga in modalità multilinea | Disponibile in tutte e quattro le famiglie. |
$ |
Fine dell’input o di una riga in modalità multilinea | Disponibile in tutte; variano i dettagli della nuova riga finale. |
\b |
Confine di parola | La definizione di carattere di parola dipende da motore e modalità. |
\A |
Inizio assoluto della stringa | PCRE2, Python e .NET; non JavaScript. |
\z |
Fine assoluta della stringa | PCRE2 e .NET; Python usa \Z. |
\Z |
Fine della stringa in Python | PCRE2 e .NET possono corrispondere anche prima di una nuova riga finale; usa lì \z per la fine assoluta. |
Gruppi e lookaround
| Token | Significato | Limite importante |
|---|---|---|
(abc) |
Gruppo di cattura | Disponibile in tutte e quattro le famiglie. |
(?:abc) |
Gruppo senza cattura | Disponibile in tutte e quattro le famiglie. |
(?<name>abc) |
Gruppo con nome | Sintassi JavaScript, PCRE2 e .NET. |
(?P<name>abc) |
Gruppo con nome | Sintassi Python, accettata anche da PCRE2. |
(?=abc) / (?!abc) |
Lookahead positivo / negativo | Disponibile in tutte e quattro le famiglie. |
(?<=abc) / (?<!abc) |
Lookbehind positivo / negativo | Tutte lo supportano, ma le lunghezze consentite differiscono. |
Il lookbehind è una comune trappola di portabilità. Python re richiede un lookbehind a larghezza fissa. Il supporto JavaScript dipende dal runtime distribuito: testa il pattern esatto nel runtime più vecchio supportato invece di fidarti solo di una riga della guida.
Forme di pattern, non validatori completi
Le voci dei pattern comuni descrivono intenzionalmente delle forme. Per esempio, ^\d{4}-\d{2}-\d{2}$ accetta 2026-99-99 e un semplice pattern con forma di e-mail non può implementare lo standard completo degli indirizzi e-mail. Dopo una prima verifica di formato, analizza date, URL e identificatori strutturati con la libreria giusta.
| Forma | Pattern di esempio | Cosa non dimostra |
|---|---|---|
| Decimale con segno | ^-?\d+(?:\.\d+)?$ |
Segni decimali locali, raggruppamento, intervallo numerico o precisione. |
| Testo con forma di e-mail | ^[\w.+-]+@[\w-]+\.[\w.-]+$ |
Un indirizzo e-mail recapitabile o pienamente conforme agli standard. |
| Testo con forma di URL HTTP(S) | ^https?://\S+$ |
Un URL sicuro, analizzabile o raggiungibile. |
| Forma data ISO | ^\d{4}-\d{2}-\d{2}$ |
Una vera data di calendario. |
| Caratteri slug ASCII | ^[A-Za-z0-9_-]+$ |
Regole di maiuscole, separatori o parole riservate della tua applicazione. |
Flag e opzioni
Non copiare un flag senza controllare l’API ospite. JavaScript scrive /pattern/g, Python passa re.I o re.X, .NET può usare RegexOptions, e PCRE2/PHP usa comunemente delimitatori e modificatori finali. g è un flag JavaScript per la ricerca globale, non un modificatore PCRE2; le corrispondenze PCRE2 ripetute sono controllate di solito dall’API PHP. La modalità estesa (x) è disponibile in PCRE2, Python e .NET, ma non come flag JavaScript.
Domande frequenti
No. È un riferimento di sintassi con ricerca e copia locali nel browser. Usa un tester regex e il runtime della tua applicazione per compilare pattern e provare input rappresentativi.
Alcuni token dall’aspetto familiare non sono portabili. Il re integrato di Python usa per esempio (?P<name>…) per i gruppi con nome, JavaScript usa (?<name>…), e JavaScript non supporta le ancore assolute \A e \z.
No. In JavaScript, \d indica cifre ASCII e \w indica caratteri di parola essenzialmente ASCII anche con il flag u. Gli altri motori hanno modalità e opzioni Unicode diverse, quindi testa il comportamento necessario ai dati.
Considerali solo controlli rapidi della forma. Non dimostrano che un indirizzo e-mail sia recapitabile, che un URL sia sicuro o raggiungibile, né che una data esista nel calendario. Per le regole di produzione usa un parser o validatore dedicato.
Strumenti correlati
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Semplificatore di Algebra Booleana
Valuta un'espressione booleana per ogni combinazione di input e mostra la tabella della verità completa. Supporta fino a cinque variabili e gli operatori &, |, ! e ^.
Generatore di palette colori casuali
Genera palette casuali da 2 a 15 campioni, scegli uno stile vivace, pastello, tenue o scuro e copia codici HEX o variabili CSS.
Generatore di Palette di Colori
Genera palette monocromatiche, analoghe, complementari, triadiche o tetradiche da un colore base HEX ed esporta variabili CSS pronte da copiare.
Trova nome colore
Trova il colore CSS standard con nome più vicino a un valore HEX, RGB o HSL usando la differenza CIEDE2000.