Questo tester esegue espressioni regolari JavaScript sul tuo testo e mostra ogni corrispondenza, la sua posizione e i suoi gruppi di cattura. I pattern vengono valutati in locale, quindi nulla viene caricato o registrato.
I tuoi dati vengono elaborati localmente nel tuo browser e non vengono inviati al nostro server.
Pattern non valido:
Corrispondenze (2)
Contact ada@example.com or grace@example.org for details.
Nessuna corrispondenza in questo testo.
#1ada@example.composizione 8
#2grace@example.orgposizione 27
Come usare questo strumento
1 Inserisci un’espressione regolare e scegli i flag che ti servono.
2 Incolla il testo da cercare: le corrispondenze vengono evidenziate ed elencate mentre digiti.
3 Scegli uno degli esempi comuni per partire da un pattern che funziona.
4 Copia i valori trovati o svuota il modulo.
Formula e logica di calcolo
Corrispondenze
new RegExp(pattern, flags).exec(text)
Il pattern viene compilato dal motore JavaScript del browser. Senza il flag g viene restituita solo la prima corrispondenza; con g il tester continua fino alla fine del testo.
Flag
g globale · i ignora maiuscole · m multilinea · s dotAll · u unicode · y sticky
I flag cambiano il modo in cui il motore interpreta il pattern. Il tester li passa al costruttore RegExp e segnala gli errori di sintassi con il messaggio del motore.
Esempio svolto
Trovare indirizzi email
Un messaggio di assistenza contiene due indirizzi email.
Pattern: \b[\w.+-]+@[\w-]+\.[\w.]+\b
Flag: g
Risultato: ada@example.com e grace@example.org
Ogni corrispondenza è elencata con il suo indice iniziale; i gruppi di cattura compaiono quando il pattern contiene parentesi.
Catturare una data
Estrarre anno, mese e giorno da date ISO.
Pattern: (\d{4})-(\d{2})-(\d{2})
Flag: g
Gruppi: anno, mese e giorno per ogni corrispondenza
Le parti tra parentesi vengono restituite come gruppi di cattura nell’ordine in cui compaiono nel pattern.
Casi limite e precisione
Backtracking catastrofico
Quantificatori annidati come (a+)+ possono far lavorare il motore in modo esponenziale su alcuni input. Se la pagina si blocca, semplifica il pattern; il tester non può interrompere una regex in esecuzione.
Corrispondenze di lunghezza zero
Pattern come ^ o \b possono corrispondere a una stringa vuota. Dopo una corrispondenza vuota il tester sposta la posizione di ricerca, così non entra in un ciclo infinito.
Solo sintassi JavaScript
Il tester usa la sintassi RegExp di JavaScript, non quella di PCRE o Python. Lookbehind e gruppi con nome funzionano solo nei motori che li implementano.
Domande frequenti
Perché ottengo una sola corrispondenza?+−
Serve il flag g (globale) per trovare tutte le corrispondenze. Senza, il tester si ferma al primo risultato.
Che cosa sono i gruppi di cattura?+−
Ogni parte del pattern tra parentesi cattura del testo. I gruppi sono numerati da sinistra a destra e mostrati accanto alla corrispondenza, con ∅ per un gruppo facoltativo non trovato.
Il mio pattern e il mio testo vengono caricati?+−
No. La ricerca avviene nel tuo browser con il motore RegExp nativo; nulla viene inviato a un server.
Perché la mia regex è lenta?+−
Quantificatori annidati e alternanze ambigue possono causare backtracking catastrofico. Riscrivi il pattern in modo più specifico o ancoralo per ridurre lo spazio di ricerca.
Supporta i gruppi con nome?+−
Il motore lascia passare la sintassi JavaScript moderna, quindi i gruppi con nome funzionano dove il browser li supporta. L’elenco dei risultati mostra i gruppi numerati.
Strumenti per sviluppatori correlati
Formatta, codifica o calcola l’hash del testo su cui stai cercando.