Come si usa
- Inserisci un’espressione regolare nel campo Pattern, senza le barre che la racchiudono.
- Seleziona i flag che ti servono. g (globale) trova tutte le corrispondenze, non solo la prima.
- Incolla il testo in cui cercare. Le corrispondenze vengono evidenziate e ciascuna è elencata con la propria posizione e i gruppi di cattura.
- Se vuoi, inserisci una sostituzione, per esempio $2-$1, per visualizzare un’anteprima del risultato di String.replace.
Come funziona
Il tester esegue il pattern con l’oggetto RegExp integrato nel browser, quindi i risultati corrispondono esattamente a quelli prodotti dal codice JavaScript (ECMAScript) in quel browser. Altri linguaggi usano varianti diverse delle regex: PCRE (PHP), il modulo re di Python, Java e .NET supportano funzionalità non disponibili in JavaScript, come i quantificatori possessivi (a++), i gruppi atomici ((?>…)), i modificatori inline come (?i) e la ricorsione. Inoltre, differiscono in alcuni dettagli, per esempio per gli ancoraggi \A e \Z. Prima di usare un pattern in un altro linguaggio, provalo in quel linguaggio. Il lookbehind ((?<=…)), i gruppi con nome ((?<name>…)) e le escape per le proprietà Unicode (\p{L} con il flag u) funzionano in tutti i browser attuali.
Senza il flag g o y viene trovata solo la prima corrispondenza, come con RegExp.exec. Le corrispondenze di lunghezza zero, per esempio con ^ o \b, vengono elencate ma non evidenziate; dopo ciascuna, la ricerca prosegue di un carattere (un punto di codice con il flag u), come fa String.matchAll. I gruppi di cattura sono mostrati per numero e, se definiti, per nome; se un gruppo non è stato coinvolto nella corrispondenza, viene indicato come privo di valore, a differenza di una corrispondenza vuota.
Alcuni pattern, come (a+)+$ su una riga lunga senza corrispondenze, possono richiedere un tempo esponenziale per fallire (backtracking catastrofico). Per ridurre il rischio, la ricerca inizia poco dopo che smetti di digitare, vengono esaminati solo i primi 100.000 caratteri del testo e vengono raccolte al massimo 1.000 corrispondenze. Un pattern problematico può comunque bloccare la scheda per un po’: in tal caso, semplifica il pattern o riduci la lunghezza del testo.
Esempi
Estrazione di date
Il pattern (\d{4})-(\d{2})-(\d{2}) con il flag g applicato a “Da pagare il 2026-03-15, saldato il 2026-04-02” trova due corrispondenze. Il gruppo 1 è l’anno; la sostituzione $3.$2.$1 trasforma il testo in “Da pagare il 15.03.2026, saldato il 02.04.2026”.
Gruppi con nome per un codice più leggibile
(?<key>\w+)=(?<value>[^&]*) nella stringa di query a=1&b=two mostra key e value per ogni coppia, come i valori restituiti in JavaScript da match.groups.key e match.groups.value.
Ricerca senza distinzione tra maiuscole e minuscole su più righe
^error:.* con i flag g, i e m trova ogni riga di un log che inizia con Error:, ERROR: o error:, perché m fa sì che ^ corrisponda all’inizio di ogni riga.
Domande frequenti
La mia regex funzionerà allo stesso modo in Python, PHP o Java?
Non necessariamente. Questo strumento usa il motore JavaScript. La sintassi di base è condivisa, ma alcune funzionalità, come i quantificatori possessivi, i gruppi atomici, i flag inline come (?i) e alcune sequenze di escape, sono disponibili solo in altre varianti e possono comportarsi diversamente. Prova sempre il pattern nel linguaggio di destinazione.
Perché viene trovata una sola corrispondenza?
Il flag g (globale) è disattivato. Senza questo flag, JavaScript restituisce solo la prima corrispondenza. Seleziona g per trovarle tutte.
Devo inserire le barre attorno al pattern?
No. Inserisci solo il pattern, per esempio \d+ e non /\d+/g, e seleziona i flag tramite le caselle di controllo. Sotto i risultati viene mostrata la sintassi letterale JavaScript, pronta da copiare nel codice.
Perché la pagina è diventata lenta con il mio pattern?
I quantificatori annidati, come (a+)+ o (.*)*, possono costringere il motore a provare un numero esponenziale di percorsi quando non trova corrispondenze. Rendi il pattern più specifico, per esempio sostituendo .* con [^,]*, oppure usa degli ancoraggi. Per ridurre l’impatto, il tester limita il testo a 100.000 caratteri.
Privacy
Il pattern e il testo vengono elaborati solo nel browser, tramite il suo motore JavaScript. Non vengono caricati, salvati né inclusi nelle statistiche.