§

Pattern

Flag
§

Stringa di test

§

Corrispondenze

0 corrispondenze

    Nessuna corrispondenza ancora — digita un pattern e una stringa di test qui sopra.

    §

    Modalità sostituzione

    Riferimento rapido

    Classi di caratteri

    \d
    Qualsiasi cifra, equivalente a [0-9].
    \w
    Qualsiasi carattere di parola — lettere, cifre o underscore.
    \s
    Qualsiasi spazio bianco — spazio, tab, ritorno a capo, ecc.

    Ancore

    \b
    Un'asserzione a larghezza zero su un confine di parola.
    ^
    Inizio dell'input (o di ogni riga quando il flag m è attivo).
    $
    Fine dell'input (o di ogni riga quando il flag m è attivo).

    Quantificatori

    *
    Zero o più del token precedente, goloso.
    +
    Uno o più del token precedente, goloso.
    ?
    Zero o uno del token precedente — rende anche pigro un quantificatore precedente.
    {n,m}
    Tra n e m ripetizioni del token precedente.

    Gruppi

    (...)
    Gruppo di cattura — esposto come $1, $2, … nelle sostituzioni.
    (?:...)
    Gruppo non di cattura — raggruppa senza occupare uno slot.
    (?...)
    Gruppo di cattura nominato — esposto come $ nelle sostituzioni.

    Lookaround

    (?=...)
    Lookahead positivo — corrisponde solo se seguito da …
    (?!...)
    Lookahead negativo — corrisponde solo se NON seguito da …
    (?<=...)
    Lookbehind positivo — corrisponde solo se preceduto da …
    (?
    Lookbehind negativo — corrisponde solo se NON preceduto da …

    Escape

    \\
    Una barra rovesciata letterale.
    \.
    Un punto letterale — esegui l'escape di qualsiasi metacarattere per farlo corrispondere letteralmente.

    Per gli sviluppatori italiani questo Regex tester è quotidiano per validare i formati nazionali: il codice fiscale a 16 caratteri emesso dall'Agenzia delle Entrate, la Partita IVA a 11 cifre con check digit, l'IBAN italiano IT seguito da 25 caratteri secondo lo standard ABI/CAB, e il codice univoco SDI a sette caratteri. Anche i log access.log di Aruba e i tracciati XML di Fatturazione Elettronica si estraggono con pattern Regex. Le aziende della grande distribuzione — Esselunga, Conad, Coop — usano Regex per validare codici EAN e SKU, mentre i team React e Vue degli e-commerce su Magento Italia integrano Regex nei form di checkout per CAP e prefissi telefonici TIM, Vodafone e WindTre.

    Come funziona regex nel tuo browser?

    Ogni runtime JavaScript include un motore nativo di espressioni regolari — new RegExp(pattern, flags) compila il tuo pattern, poi metodi come String.prototype.match, String.prototype.replace e RegExp.prototype.exec lo eseguono su qualsiasi stringa di input. Questo tester avvolge quel motore in un'interfaccia che ti permette di modificare, eseguire e ispezionare pattern senza lasciare il browser. Nulla di ciò che digiti — pattern, flag, stringa di test o sostituzione — viene inviato attraverso la rete.

    Come funziona il tester di regex?

    La pipeline è composta da pochi brevi passaggi, tutti eseguiti lato client a ogni battitura (con debounce di 150 ms per mantenere fluida la digitazione):

    1. Il corpo del tuo pattern viene letto dal campo qui sopra (senza delimitatori / iniziali o finali — sono decorativi). I flag selezionati vengono concatenati in una stringa di flag come gi o gimsuy.
    2. new RegExp(patternBody, flags) compila il pattern. Se il motore lancia un SyntaxError (per es. una parentesi non bilanciata o un escape non valido), il messaggio viene mostrato sopra la stringa di test e l'elenco delle corrispondenze viene azzerato. L'errore di compilazione è il vero err.message di V8 / SpiderMonkey / JavaScriptCore, quindi corrisponde a ciò che vedresti nelle DevTools.
    3. Per l'elenco delle corrispondenze, il tester enumera sempre con un flag global sintetico — così, anche se disattivi g, l'elenco continua a mostrare ogni corrispondenza. La protezione standard contro le corrispondenze a larghezza zero (if (m.index === rx.lastIndex) rx.lastIndex++) evita che il ciclo si avviti su pattern che corrispondono alla stringa vuota. La modalità Sostituzione rispetta i tuoi flag effettivi, così $& si comporta come String.prototype.replace.
    4. Tra ogni iterazione il tester verifica performance.now() - start e si interrompe quando sono trascorsi 50 ms. Questo protegge dal backtracking catastrofico su input come (a+)+$ contro una lunga sequenza di a — la scheda altrimenti si bloccherebbe. La protezione è best-effort: un pattern patologico a corrispondenza singola può comunque consumare tempo all'interno di una singola chiamata exec. Se accade, ricarica la scheda e riscrivi il pattern con un quantificatore non goloso o uno stile possessivo atomico (per es. [^x]*x).
    5. La stringa di test viene suddivisa in segmenti in corrispondenza dell'intervallo di ogni match e i segmenti corrispondenti vengono racchiusi in elementi <mark class="rx-match rx-cap-N">, dove N scorre ciclicamente sei colori della palette per rendere facili da distinguere a colpo d'occhio le corrispondenze adiacenti. I gruppi numerati (m[1], m[2], …) e nominati (m.groups) di ogni corrispondenza vengono mostrati come righe etichettate sotto; se il flag d è attivo, vengono mostrati anche gli indici [start, end] per gruppo.

    Perché usare questo tester di regex?

    • Privacy: ogni pattern, stringa di test e sostituzione viene eseguito nel tuo browser tramite il motore JavaScript RegExp integrato. Nulla esce dalla scheda — importante quando l'input è un log cliente, un pattern di credenziali trapelate o qualsiasi altra cosa che non incolleresti in un playground regex SaaS ospitato.
    • Sapore onesto: il tester espone esattamente il motore regex che Node.js, Chrome, Safari, Firefox e ogni validatore di form basato su browser eseguono. Non c'è alcuno strato di traduzione in stile Perl che nasconde differenze sottili — ciò che funziona qui funziona nel tuo codice.
    • Debug di cattura e gruppi nominati: ogni gruppo numerato ($1, $2, …) e nominato ($<year>) è mostrato per ogni corrispondenza, così puoi costruire un parser e leggere gli slot senza tirare a indovinare. La modalità Sostituzione ti consente di combinare i gruppi liberamente — $2-$1 scambia i primi due slot, $<name> inserisce uno slot nominato e $& rimanda l'intera corrispondenza.
    • Protezione dal backtracking catastrofico: un tetto di 50 ms sull'enumerazione interrompe pattern patologici come (a+)+$ prima che congelino la scheda. Vedi un errore esplicativo invece di un browser bloccato, e la pagina si riprende immediatamente.

    Quali sono le applicazioni comuni di un tester di regex?

    Le espressioni regolari compaiono nello sviluppo web, nella sicurezza e nel lavoro sui dati — questo tester punta ai casi d'uso più comuni:

    • Validazione di form: prototipa un pattern per email, telefono o CAP, incolla input di esempio nella stringa di test e conferma che ogni caso positivo corrisponda e ogni caso negativo no, prima di portare il pattern in produzione.
    • Scraping di log: incolla un blocco di output NGINX, applicativo o di audit, scrivi un pattern con gruppi nominati per le parti che ti interessano ((?<ip>…) (?<path>…)) e leggi gli slot catturati per corrispondenza per confermare che il tuo parser è corretto.
    • Cerca-e-sostituisci per refactor: usa la modalità Sostituzione per riscrivere identificatori in uno snippet — (\w+)\.set(\w+)\($1.$2 = trasforma le chiamate setter in assegnazioni di proprietà, e l'anteprima dal vivo mostra il risultato prima di applicarlo in un codemod.

    Che aspetto ha un esempio di regex?

    Prendi il pattern (\d{4})-(\d{2})-(\d{2}) con il flag g, eseguito contro la stringa di test release 2025-11-15, prerelease 2026-05-25. Il motore trova due corrispondenze. La prima è 2025-11-15 con gruppo 1 = 2025, gruppo 2 = 11, gruppo 3 = 15. La seconda è 2026-05-25 con la stessa forma di gruppi. In modalità Sostituzione, il modello $3/$2/$1 riscrive entrambe le date in 15/11/2025 e 25/05/2026 — una conversione ISO → DMY con un solo pattern che puoi verificare visivamente prima di collegarlo in uno script.

    Usa questo tester come la via veloce per ogni lavoro su regex — costruzione, debug o riscrittura di pattern. Tutto viene eseguito localmente; nulla viene registrato; il motore regex è quello che il tuo browser include, quindi il comportamento corrisponde a ciò che il codice di produzione vedrà a runtime.