Tester di Regex
Costruisci, testa e debugga espressioni regolari JavaScript con evidenziazione live, modalità sostituzione e preset pronti all'uso.
Cos'è un'espressione regolare?
Un'espressione regolare (regex) è un piccolo linguaggio di pattern per cercare e trasformare testo. Alimenta il find-in-files, l'analisi dei log, le regole di validazione, i lexer e la maggior parte delle funzioni cerca-e-sostituisci negli editor. Questo strumento costruisce un RegExp live nel tuo browser, lo esegue contro la stringa di test e mostra ogni match più un'evidenziazione inline. Usa il motore JavaScript standard, quindi ciò che funziona qui funziona allo stesso modo in Node.js e in tutti i browser moderni.
Come usare il tester
Scrivi il tuo pattern (senza i delimitatori /.../) nel campo pattern, scegli i flag che ti servono e incolla sotto il testo di test. I match vengono evidenziati nel pannello di anteprima ed elencati singolarmente con la loro posizione carattere. Attiva Modalità sostituzione per vedere il risultato di String.prototype.replace() con la tua stringa di sostituzione — usa $& per l'intero match e $1, $2 per i gruppi di cattura. I chip dei preset caricano nei campi pattern comuni così puoi modificare invece di partire da zero.
Cheat sheet della regex
I token più utili in un solo posto. La regex JavaScript segue la sintassi ECMAScript — vicina a PCRE ma con qualche assenza (niente quantificatori possessivi, niente pattern ricorsivi).
| Token | Significato |
|---|---|
. | Qualsiasi carattere (tranne il fine riga, a meno che il flag s sia attivo) |
\d \w \s | Cifra, carattere di parola (lettere/cifre/_), spazio |
^ $ | Inizio della stringa, fine della stringa (per riga con il flag m) |
* + ? | Zero o più, una o più, zero o una (greedy di default) |
{n,m} | Da n a m ripetizioni |
[abc] | Qualsiasi carattere nell'insieme; usa [^abc] per negare |
(...) | Gruppo di cattura; usa (?:...) per un gruppo non catturante |
| | Alternanza — match con un lato o con l'altro |
Domande frequenti
Quale motore regex viene usato?
Cosa significano i flag?
g trova tutti i match (non solo il primo). i ignora maiuscole/minuscole. m fa sì che ^ e $ matchino inizio/fine riga. s permette a . di matchare anche i fine riga. u abilita la modalità Unicode completa (richiesta per le proprietà come \p{Letter}). y è sticky — i match devono iniziare esattamente a lastIndex.Qualcosa viene inviato a un server?
new RegExp() e String.prototype.replace(). Apri DevTools > Network e verifica: non vengono fatte richieste mentre digiti. Sicuro per snippet di log, dati interni o qualsiasi cosa tu non incollerebbe in una sandbox regex cloud.Perché la mia regex è lenta o blocca la pagina?
(a+)+ o (.*)* possono girare per miliardi di passaggi su input che quasi corrispondono. Evita di annidare +/*; preferisci alternative in stile atomico come [^x]+ oppure ancora il pattern. Il tester si difende dai match fuori controllo con un limite di 50.000 iterazioni così la pagina non si blocca.Come uso i gruppi di cattura in modalità sostituzione?
$1, $2, ecc. Esempio: pattern (\w+)@(\w+) con sostituzione $2 / $1 scambia user e dominio in un'email. $& rappresenta l'intero match, $$ produce un $ letterale. I gruppi nominati (?<name>...) si possono usare come $<name>.Perché ^ e $ non matchano ogni riga?
^ matcha solo l'inizio assoluto della stringa di test e $ solo la fine assoluta — non ogni riga. Aggiungi il flag m (multiline) e matcheranno le interruzioni di riga. Se ti serve anche che . matchi i caratteri di fine riga (per esempio per catturare attraverso più righe), aggiungi il flag s (dotAll).