Tester di regex
Testa espressioni regolari con evidenziazione live di match e gruppi
Su questo strumento
Scrivi un pattern, incolla un testo di prova e ogni match viene evidenziato mentre digiti — con gruppi di cattura, gruppi con nome e posizioni dei match elencati sotto. Il tester usa il motore RegExp di JavaScript, quindi il comportamento coincide esattamente con quello di Node.js e dei browser, inclusi lookbehind, gruppi con nome ed escape di proprietà Unicode.
I flag si attivano lettera per lettera (g, i, m, s, u, y, d) e il pattern viene compilato a ogni tasto premuto; gli errori di sintassi emergono subito con il messaggio del motore stesso, senza dover premere un pulsante. I pattern con match vuoti come a* sono gestiti in sicurezza e gli input fuori controllo sono limitati a 10.000 match, così un .* di troppo non può bloccare la scheda.
I dialetti regex differiscono tra motori — un pattern che funziona qui può richiedere aggiustamenti per PCRE, RE2 o il modulo re di Python, soprattutto su supporto al lookbehind, quantificatori possessivi e flag inline.
Domande frequenti
- Quale dialetto regex usa questo tester?
- ECMAScript (JavaScript), come implementato dal tuo browser. Supporta lookahead, lookbehind, gruppi di cattura con nome, backreference ed escape di proprietà Unicode come \p{Letter} (con il flag u). Non supporta la sintassi esclusiva di PCRE come quantificatori possessivi o ricorsione.
- Perché il mio pattern matcha tutto / niente?
- Le due cause classiche: un metacarattere non escapato (. matcha qualsiasi carattere — escapalo come \. per un punto letterale), oppure un flag g dimenticato a mente — questo tester trova sempre tutti i match, ma il tuo codice troverà solo il primo se g non è impostato.
- Cosa sono i gruppi di cattura con nome?
- La sintassi (?<name>...) etichetta un gruppo così puoi leggere i match per nome invece che per posizione: match.groups.name in JavaScript. Il pannello dei gruppi sotto i match mostra per ciascun match sia le catture numerate sia quelle con nome.
- Una regex scritta qui gira senza modifiche in Python o Go?
- Spesso, ma non sempre. Classi di caratteri, quantificatori e ancore sono portabili; lookbehind, sintassi dei gruppi con nome (Python usa (?P<name>...)) e flag inline differiscono. Il motore RE2 di Go, in più, rifiuta del tutto backreference e lookaround.