👤 Pro — senza pubblicitàPro
// pattern ↔ corrispondenze

Tester di espressioni regolari

Digita un pattern e del testo — le corrispondenze si evidenziano in tempo reale, con i gruppi di cattura elencati qui sotto.

Gratis — uso illimitato.

Corrispondenze

Costruire un pattern un pezzo alla volta

Il modo più veloce per arrivare a un'espressione regolare funzionante è imbarazzantemente poco affascinante: inizia digitando il testo letterale che vuoi trovare, guarda come si evidenzia, e solo dopo generalizzalo passo dopo passo — sostituisci le cifre con una classe come [0-9]+, permetti parti opzionali con un punto interrogativo, ancoralo con ^ o $ una volta che il centro si comporta bene. Poiché le corrispondenze si aggiornano in tempo reale mentre digiti, ogni piccola modifica ti dà un feedback istantaneo, e un errore si manifesta nel momento in cui lo commetti invece che tre modifiche più tardi. Altrettanto importante è cosa incolli nella casella di testo: includi righe che il pattern non dovrebbe trovare, non solo quelle che dovrebbe. Un pattern testato soltanto su casi ideali ha la tendenza a trovare corrispondenza in metà del documento non appena incontra dati reali.

I gruppi di cattura fanno l'estrazione

Racchiudi parte di un pattern tra parentesi e diventa un gruppo di cattura — il pezzo di ogni corrispondenza che vuoi davvero conservare. Un pattern come ([0-9]{2}):([0-9]{2}) eseguito su una pagina di testo non trova solo orari; la tabella sotto il testo elenca ogni corrispondenza con il gruppo uno che contiene le ore e il gruppo due i minuti, più la posizione in cui è stata trovata. Aggiungi il flag g e raccogli ogni occorrenza nel testo invece di fermarti alla prima. Questo è il nucleo onesto della maggior parte del lavoro regex quotidiano: non una validazione intelligente, ma estrarre valori strutturati — date, numeri d'ordine, prezzi — da un testo che non era mai stato pensato per essere strutturato.

Quando un pattern si blocca — e la rete di sicurezza

Alcuni pattern sono trappole. Annida un quantificatore aperto dentro un altro — la forma classica è (a+)+ — e sull'input sbagliato il motore prova un numero esponenziale di modi per dividere il testo prima di arrendersi. Sulla maggior parte dei siti questo blocca l'intera scheda; qui il confronto viene eseguito in un worker in background che viene fermato dopo due secondi, così ottieni una spiegazione invece di una pagina morta. La cura è quasi sempre rendere il pattern più specifico, così il motore ha meno modi per suddividere lo stesso testo. Un avvertimento onesto: questo tester usa il motore di JavaScript, il che è ideale se il pattern è destinato a uno script o a una pagina web, ma Python e PCRE differiscono su alcuni costrutti — testa anche nel linguaggio finale. Quando i valori che estrai sono destinati a un link o a una query string, il nostro encoder URL è la naturale tappa successiva.

Come funziona questo tester

Il tuo pattern viene eseguito sul testo usando il motore di espressioni regolari nativo di JavaScript — lo stesso che il tuo codice userà davvero se questo serve per uno script o una pagina web. Le corrispondenze vengono evidenziate nel testo ed elencate con i rispettivi gruppi di cattura qui sotto.

Quali flag sono supportati?

g (globale — trova tutte le corrispondenze, non solo la prima), i (senza distinzione tra maiuscole e minuscole) e m (multiriga, così ^ e $ corrispondono ai limiti di riga) — quelli che userai davvero nella pratica.

Perché il mio pattern mostra un errore?

La sintassi delle regex di JavaScript presenta alcune differenze rispetto ad altri linguaggi (PCRE, Python) — un carattere speciale non preceduto da escape o un costrutto non supportato genera un errore di sintassi, mostrato direttamente invece di un risultato silenziosamente sbagliato.

Il mio testo viene inviato da qualche parte?

No: la corrispondenza avviene interamente nel tuo browser con JavaScript puro. Nulla viene caricato.

Convertburda — conversioni universali