Regex Tester
Testa ed esegui il debug delle espressioni regolari istantaneamente nel tuo browser. Evidenzia le corrispondenze, visualizza i gruppi di acquisizione e utilizza la modalità di sostituzione: gratuita e privata.
Testa ed esegui il debug delle espressioni regolari istantaneamente nel tuo browser. Evidenzia le corrispondenze, visualizza i gruppi di acquisizione e utilizza la modalità di sostituzione: gratuita e privata.
Le espressioni regolari sono un linguaggio specifico del dominio per la corrispondenza dei modelli nel testo. Fanno parte dell'informatica dal 1968 e ora sono integrati in ogni moderno linguaggio di programmazione, editor di testo e strumento di ricerca da riga di comando. La sintassi è concisa ma soggetta a errori: piccole modifiche producono comportamenti di corrispondenza leggermente diversi e le espressioni complesse diventano rapidamente illeggibili. Un tester che mostra le corrispondenze in tempo reale mentre modifichi il pattern è il modo più efficace per sviluppare e verificare regex.
Questo tester viene eseguito nel tuo browser utilizzando il motore regex JavaScript (lo stesso utilizzato dalla tua applicazione se viene eseguito in un browser). I modelli e il testo del test si aggiornano in modo reattivo: ogni modifica a uno dei due riavvia la partita. I gruppi di corrispondenza vengono evidenziati, i gruppi acquisiti vengono elencati e i flag (senza distinzione tra maiuscole e minuscole, multilinea, globale) vengono esposti per il test.
La sintassi Regex varia leggermente tra i motori. JavaScript segue le specifiche ECMAScript; Python, PCRE (utilizzato da PHP e molti altri), Java e Go hanno ciascuno i propri dialetti con caratteristiche sovrapposte ma non identiche. I modelli sviluppati qui utilizzano la sintassi ECMAScript; la portabilità tra motori richiede il controllo della documentazione di ciascuna destinazione.
I bug regex sono notoriamente difficili da eseguire il debug dopo la distribuzione. Un modello che sembra ragionevole potrebbe corrispondere più o meno del previsto, fallire in casi limite o avere un backtracking catastrofico su determinati input. Testare i modelli in modo interattivo rispetto a input rappresentativi rileva i problemi prima della revisione e della produzione del codice.
Anche i modelli traggono vantaggio dalla documentazione. Mostrare una regex accanto all'input a cui dovrebbe corrispondere e all'input a cui non dovrebbe corrispondere rende esplicito l'intento. I futuri manutentori (incluso te tra sei mesi) apprezzano i casi di test documentati più di quanto apprezzino le battute intelligenti.
Digita un modello, digita test input, guarda le partite evidenziate dal vivo.
L'espressione regolare JavaScript segue la specifica ECMAScript. Caratteristiche principali: classi di caratteri ([abc], [^abc]), quantificatori (*, +, ?, {n,m}), alternanza (|), raggruppamento ((...)), gruppi catturanti e non catturanti, lookahead e lookbehind (motori moderni), riferimenti all'indietro, gruppi con nome, escape di proprietà Unicode (con flag u) e l'insieme standard di sequenze di escape.
Differenze importanti rispetto a PCRE e Python: il supporto lookbehind è recente in JavaScript (2018+); i gruppi con nome usano la sintassi (?<nome>...); alcuni escape Unicode richiedono il flag u per funzionare correttamente. I modelli destinati all'uso in più lingue dovrebbero essere confrontati con la documentazione di ciascun target.
Prestazioni: i motori regex basati sul backtracking (la maggior parte include JavaScript) possono avere un backtracking catastrofico su determinati modelli patologici. I test che bloccano il tester indicano che il modello necessita di semplificazione, in genere evitando quantificatori annidati e alternanze ambigue.