TextToolbox Strumenti di testo istantanei

Tester di Espressioni Regolari

Inserisci un pattern e un testo di prova — le corrispondenze si evidenziano in tempo reale. Pattern e flag si sincronizzano con l'URL per la condivisione; il tuo testo di prova non lo fa mai.

/ /

Risultato evidenziato

Corrispondenze (0)

    Prova espressioni regolari JavaScript su testo reale

    Questo strumento costruisce un RegExp nativo dal tuo pattern e dai flag, poi lo esegue sul tuo testo di prova nello stesso modo in cui lo farebbe il tuo codice JavaScript — con matchAll() quando il flag global è attivo, o un singolo exec() quando è disattivato. Ogni corrispondenza viene evidenziata sul posto, ed elencata qui sotto con il suo indice nella stringa e il testo catturato da eventuali gruppi tra parentesi.

    Esempio pratico

    Pattern: (\d{3})[ -]?(\d{6,7}), flag gu, contro "Chiamami al 347 1234567 o al 340-9876543 per informazioni."

    Due corrispondenze, perché il flag global è attivo — senza, lo strumento si fermerebbe dopo aver trovato "347 1234567" da solo. Nota che questo pattern riconosce la forma tipica di un numero italiano (prefisso di 3 cifre, poi 6–7 cifre, con o senza spazio o trattino) ma non valida i veri prefissi di rete assegnati.

    Domande frequenti

    Perché il . non trova le nuove righe nel mio testo di prova?

    Per impostazione predefinita, il . di JavaScript trova qualsiasi carattere tranne i terminatori di riga. Se il tuo testo di prova occupa più righe e hai bisogno che . le attraversi, attiva il flag s (dotAll) — con questo attivo, . trova anche le nuove righe. Senza, un pattern come a.b trova "axb" ma non "a\nb"; con il flag s, entrambi vengono trovati.

    Cosa fa ciascun flag?

    g (global) trova tutte le corrispondenze invece di fermarsi alla prima. i (ignoreCase) rende la ricerca insensibile a maiuscole/minuscole. m (multiline) fa sì che ^ e $ trovino l'inizio/fine di ogni riga, non solo dell'intera stringa. s (dotAll) fa sì che . trovi anche le nuove righe. u (unicode) tratta il pattern come una sequenza di code point Unicode, il che corregge la ricerca per caratteri fuori dal Basic Multilingual Plane (molte emoji) e abilita le Unicode property escape come \p{L}.

    È la sintassi regex specifica di JavaScript?

    Sì. Questo strumento costruisce un RegExp nativo di JavaScript, quindi segue esattamente le regole regex di JS — che non sono universali. Altri strumenti e linguaggi usano dialetti diversi: PCRE (usato da PHP, e un superset su cui molti strumenti si modellano) supporta sintassi che JS non ha (come i gruppi atomici e i quantificatori possessivi), e viceversa JS ha funzionalità che le versioni più vecchie di PCRE non hanno. Se scrivi un pattern per grep, il modulo re di Python o uno strumento basato su PCRE, testalo anche lì — non dare per scontato che una corrispondenza qui garantisca una corrispondenza altrove.

    Come funzionano i gruppi di cattura?

    Le parentesi in un pattern creano un gruppo di cattura — il testo trovato da quel gruppo viene estratto separatamente dalla corrispondenza completa. Per esempio, (\d{3})[ -]?(\d{6,7}) contro "347 1234567" trova l'intera stringa come gruppo 0 (la corrispondenza completa), con il gruppo 1 che cattura "347" e il gruppo 2 che cattura "1234567". Questo strumento elenca il testo catturato da ogni gruppo sotto ciascuna corrispondenza.