Guida rapida alle regex

Passaggio 1 / 3 33%

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. 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. 2

    Scegli un argomento

    Apri ancore, classi di caratteri, quantificatori, gruppi, lookaround, forme di pattern comuni oppure flag e opzioni.

  3. 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. 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