Strumenti

Tester Regex Online Gratuito

Testa e correggi espressioni regolari JavaScript nel browser. Visualizza i match evidenziati in tempo reale, analizza i gruppi di cattura e visualizza l'anteprima delle sostituzioni. Nulla viene inviato a un server.

Flag
Pattern Rapidi

Risultati dei Match

Tutti i match avvengono localmente nel tuo browser. I tuoi pattern e il testo non vengono mai caricati, memorizzati o registrati.

Cos'è un'Espressione Regolare?

Un'espressione regolare (regex) è una sequenza di caratteri che definisce un pattern di ricerca. Invece di cercare una stringa fissa, una regex descrive la forma del testo che vuoi trovare — cifre, parole, indirizzi email, date e altro. Questo rende il pattern matching uno degli strumenti più potenti per sviluppatori, data analyst e sysadmin, che lo usano ogni giorno per validare input, cercare nei log e trasformare il testo in modo rapido e affidabile.

Flag delle Regex JavaScript Spiegate

g global — trova tutti i match nella stringa, non solo il primo.
i case-insensitive — le lettere coincidono indipendentemente da maiuscole o minuscole.
m multiline — gli ancoraggi ^ e $ corrispondono all'inizio e alla fine di ogni riga, non solo dell'intera stringa.
s dotAll — il punto . corrisponde anche ai caratteri di nuova riga.
u unicode — abilita il matching Unicode completo, inclusi i code point oltre U+FFFF.

Riferimento Pattern Regex Comuni

Pattern Regex Corrisponde
Email /[^\s@]+@[^\s@]+\.[^\s@]+/ hello@charcount.app
URL /https?:\/\/[^\s]+/ https://charcount.app
IPv4 /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/ 192.168.0.1
Data (AAAA-MM-GG) /\d{4}-\d{2}-\d{2}/ 2026-06-30
Colore Hex /#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\b/ #4338ca
UUID v4 /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab]…/i 9f1c…5b6c

Gruppi di Cattura Regex

Le parentesi permettono di catturare parti di un match per estrarle o riutilizzarle. Esistono tre tipi:

  • ( ) — gruppo di cattura: memorizza ciò che corrisponde, accessibile come $1, $2, … nelle sostituzioni.
  • (?: ) — gruppo non di cattura: raggruppa il pattern per alternanze o quantificatori senza memorizzarlo.
  • (?<name> ) — gruppo con nome: cattura con un nome leggibile, accessibile come groups.nome.

Ad esempio, il parsing di una data con tre gruppi: (\d{4})-(\d{2})-(\d{2})

Domande Frequenti

.* è greedy (avido): corrisponde a quanto più testo possibile, poi torna indietro se necessario. .*? è lazy (pigro, non avido): corrisponde al minimo possibile ed espande solo quando è costretto. Ad esempio, sul testo "<a><b>", il pattern <.*> corrisponde all'intero "<a><b>", mentre <.*?> corrisponde solo a "<a>". Usa la versione lazy quando vuoi il match più breve possibile, come per il parsing di singoli tag HTML.

Caratteri come . ( ) [ ] { } + * ? ^ $ | \ hanno un significato speciale nelle regex, quindi per trovarli letteralmente devi farne l'escape con una barra rovesciata. Scrivi \. per un punto letterale, \( per una parentesi aperta letterale e \\ per una barra rovesciata letterale. All'interno di una classe di caratteri, ad esempio [.], la maggior parte di questi caratteri perde il significato speciale e non necessita di escape.

La maggior parte dei tester online usa di default il motore PCRE, mentre questo strumento e il tuo browser usano il motore JavaScript (ECMAScript), che non ha alcune funzionalità. JavaScript non supporta il lookbehind nei motori più vecchi, i quantificatori possessivi, la ricorsione o i flag inline come (?i). Assicurati che il tuo tester sia impostato sul flavor JavaScript così il comportamento corrisponde a ciò che farà davvero il tuo codice.

Il flag g (global) fa sì che la regex trovi ogni match nella stringa invece di fermarsi al primo. Ti serve quando usi metodi come matchAll() o replaceAll(), o quando sostituisci tutte le occorrenze con replace(). Senza g, metodi come replace() cambiano solo il primo match. Nota che una regex globale mantiene uno stato lastIndex, quindi riutilizzala con attenzione quando chiami exec() in un ciclo.