Vai al contenuto

Testare espressioni regolari online

Prova un'espressione regolare JavaScript sul tuo testo con evidenziazione dei risultati in tempo reale, gruppi di cattura e spiegazione in parole semplici, direttamente nel browser.

Flavor regex JavaScript (ECMAScript)Lo stesso motore del tuo browser, di Node.js e di Deno
//g

$1 o $<nome> inseriscono un gruppo, $& l'intera corrispondenza, $` e $' il testo prima e dopo, $$ un simbolo del dollaro.

Qui compaiono le corrispondenze e i gruppi di cattura.

Funziona nel tuo browser · nessun caricamentoCome funziona

Come usare Tester di regex

  1. 1

    Inserisci un pattern

    Scrivi l'espressione regolare senza le barre; i flag si impostano con gli interruttori sotto il campo.

  2. 2

    Aggiungi un testo di prova

    Incolla il testo da cercare: mentre scrivi, le corrispondenze vengono evidenziate ed elencate con i rispettivi gruppi di cattura.

  3. 3

    Leggi la spiegazione

    Apri Spiegazione per leggere ogni token in italiano semplice e capire che cosa fa davvero il pattern.

  4. 4

    Guarda l'anteprima della sostituzione

    Scrivi una sostituzione con $1 o $<nome> per vedere il risultato, poi copia il codice dalla scheda Codice.

Limiti e Pro

Gratis e senza registrazione: fino a 100.000 corrispondenze contate, 2.000 evidenziate e 200 elencate nella tabella; l'evidenziazione copre testi di prova fino a 200.000 caratteri e ogni esecuzione viene interrotta dopo 1,5 secondi.

Pro elimina la pubblicità; lo strumento funziona allo stesso modo con ogni piano. Scopri Pro

Informazioni su Tester di regex

Questo strumento esegue il tuo pattern con il motore di espressioni regolari JavaScript (ECMAScript) integrato nel browser – lo stesso usato da Node.js, Deno, Bun e da ogni pagina web – quindi ciò che trova una corrispondenza qui la trova anche nel tuo codice. Scrivi un pattern e un testo di prova e ogni corrispondenza viene evidenziata mentre digiti, con una tabella delle posizioni, i gruppi di cattura numerati e quelli con nome, più inizio e fine di ciascun gruppo quando il flag d è attivo.

Tutti gli otto flag si attivano e disattivano con un clic: g per trovare ogni corrispondenza, i per ignorare maiuscole e minuscole, m perché ^ e $ valgano per ogni riga, s perché il punto includa anche gli a capo, u per Unicode completo e per le sequenze di proprietà \p{…}, v per gli insiemi Unicode con intersezione e sottrazione dentro le parentesi quadre, y per la ricerca sticky e d per gli indici. Il campo Sostituisci con mostra l'anteprima di String.prototype.replace con $1, $<nome>, $& e gli altri token di sostituzione, mentre la scheda Codice fornisce gli snippet con letterale, matchAll e RegExp().

La scheda Spiegazione scompone il pattern in token e dice in italiano semplice che cosa fa ciascuno: gruppi, lookaround, classi di caratteri, quantificatori e se sono greedy o lazy. Il Promemoria inserisce i token più comuni nel punto in cui si trova il cursore.

La ricerca viene eseguita in un Web Worker in background con un limite di 1,5 secondi. Un pattern con backtracking catastrofico, come (a+)+b su una lunga sequenza di «a», viene interrotto con una spiegazione invece di bloccare la scheda. I pattern scritti per PCRE, Python o .NET potrebbero richiedere modifiche: quantificatori possessivi, gruppi atomici, ricorsione, \A e \Z in JavaScript non esistono.

Privacy

Pattern e testi di prova restano in questa scheda del browser: la ricerca avviene in un Web Worker locale e nulla di ciò che scrivi viene caricato, registrato o salvato, quindi puoi provare senza problemi righe di log reali o dati dei clienti.

Funzionalità

Il vero motore JS

Trova le corrispondenze esattamente come RegExp nei browser e in Node.js, compresi gli insiemi del flag v e i gruppi con nome.

Spiegazione token per token

Ogni gruppo, classe, ancora e quantificatore descritto in italiano semplice.

Protezione dal backtracking

La ricerca gira in un worker con un limite di 1,5 secondi, così un pattern sbagliato non può bloccare la pagina.

Tester di regex: domande frequenti

Quale dialetto di regex usa questo strumento?
Quello di JavaScript, definito dallo standard ECMAScript e implementato dal browser che stai usando. Supporta lookbehind, gruppi con nome, sequenze di proprietà Unicode e il flag v, ma non le funzioni PCRE come quantificatori possessivi, gruppi atomici, ricorsione o condizionali. La sintassi (?P<nome>…) di Python qui va scritta (?<nome>…). I risultati coincidono con Node.js e Deno con la stessa versione del motore.
Perché il mio pattern trova solo la prima corrispondenza?
Senza il flag g, JavaScript si ferma alla prima corrispondenza: exec e match restituiscono un solo risultato e replace modifica solo la prima occorrenza. Attiva g per trovare e sostituire tutte le corrispondenze. Il flag sticky y è diverso: cerca solo nella posizione esatta in cui è finita la corrispondenza precedente, utile per i tokenizer.
Che cos'è il backtracking catastrofico?
Quando un pattern può trovare lo stesso testo in molti modi diversi, come con quantificatori annidati tipo (a+)+ o (.*)*, una ricerca che fallisce costringe il motore a provare ogni combinazione, con una crescita esponenziale rispetto alla lunghezza del testo. Qui tutto si ferma dopo 1,5 secondi con un avviso. Per risolvere, rendi le alternative mutuamente esclusive, per esempio [^,]* invece di .* prima di una virgola.
Come uso i gruppi di cattura nella sostituzione?
Scrivi $1, $2 e così via per i gruppi numerati, oppure $<nome> per un gruppo con nome come (?<anno>\d{4}). $& inserisce l'intera corrispondenza, $` il testo che la precede e $' quello che la segue, mentre $$ produce un simbolo del dollaro letterale. Con Prova un esempio si carica un pattern per le date che riordina anno, mese e giorno proprio così.
Quando servono i flag u o v?
Usa u quando il testo contiene emoji o altri caratteri fuori dal Basic Multilingual Plane, così punto e quantificatori li trattano come un solo carattere, e per usare proprietà Unicode come \p{L}. Il flag v, più recente, include tutto ciò che fa u e aggiunge operazioni sugli insiemi dentro le parentesi quadre, come [\p{L}--[a-z]] per le lettere non ASCII. I due flag non si possono combinare.