onlinetools.dev

Tester di regex

Testa espressioni regolari con evidenziazione live di match e gruppi

Gira in locale
loading…
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.
Strumenti correlati