Tester regex online — Prova le espressioni regolari JavaScript dal vivo
Prova un'espressione regolare su un testo di esempio con evidenziazione delle corrispondenze in tempo reale, gruppi di cattura e anteprima della sostituzione. Gratis, nel browser.
Contact us at hello@freetoolsforweb.com or sales@example.org. Site: https://freetoolsforweb.com/tools — call (416) 555-0199. Launched 2026-09-08, colours #244b3f and #fff, server 10.0.0.12.
| # | Corrispondenza | Indice | Gruppi |
|---|---|---|---|
| 1 | hello@freetoolsforweb.com | 14 | — |
| 2 | sales@example.org | 43 | — |
Il link di condivisione apre questo tester con lo stesso pattern, gli stessi flag, il testo di prova e la sostituzione. Sono memorizzati dopo il # nel link, che i browser non inviano mai a un server.
Funziona interamente nel tuo browser. Nulla di ciò che inserisci viene inviato a noi o salvato. Sfoglia tutti gli strumenti gratuiti.
Hai trovato un problema o qualcosa che potrebbe andare meglio? Leggiamo ogni messaggio e sistemiamo le cose in fretta.
Questo tester regex gratuito esegue le espressioni regolari JavaScript sul tuo testo di esempio direttamente nel browser ed evidenzia ogni corrispondenza mentre scrivi. Per ogni risultato vengono elencati gruppi di cattura, gruppi con nome e indice della corrispondenza, e una modalità di sostituzione mostra in anteprima le sostituzioni con $1 e $<name> esattamente come le farà String.replace. Copia un link di condivisione e chiunque lo apra vedrà lo stesso pattern, gli stessi flag e lo stesso testo di prova; ogni esempio della nostra guida rapida alle regex si apre qui allo stesso modo.
Il motore è quello del tuo browser, quindi i risultati coincidono esattamente con Node.js, React, Deno e qualsiasi framework web; sono simili, ma non identici, a PCRE (PHP, il modulo re di Python, grep -P). Le differenze più importanti, cioè il supporto del lookbehind, i quantificatori possessivi e gli ancoraggi \A, sono spiegate più sotto, così un pattern che funziona qui non ti riserva sorprese altrove.
Come si usa
- Scrivi un pattern senza le barre iniziale e finale, oppure fai clic su un preset (email, URL, telefono, data, IPv4, colore esadecimale) per partire da qualcosa di collaudato.
- Spunta i flag che ti servono. g trova tutte le corrispondenze invece della prima; i ignora maiuscole e minuscole; m fa corrispondere ^ e $ a inizio e fine di ogni riga.
- Incolla il testo di prova. Le corrispondenze vengono evidenziate subito e la tabella le elenca una per una con i relativi gruppi di cattura.
- Apri Sostituisci per vedere l'anteprima di una sostituzione. Usa $1 per i gruppi numerati, $<name> per i gruppi con nome e $& per l'intera corrispondenza.
- Copia il pattern come /pattern/flags per i letterali JavaScript, oppure come new RegExp() quando il pattern proviene da una stringa.
- Fai clic su Copia link di condivisione per inviare l'intera configurazione a un collega. Lo stato si trova dopo il # nel link, quindi quando lo apre non viene inviato a nessun server.
Domande frequenti
Quale variante di regex usa?
ECMAScript (JavaScript), perché è il browser a valutare direttamente il pattern. È la variante usata da Node.js, dal codice front-end e dai pattern di JSON Schema. Python, Java, Go, PHP e grep hanno motori propri che concordano sulle basi e differiscono nei casi limite; prova nel linguaggio di destinazione prima di pubblicare qualcosa di insolito.
Perché il mio pattern trova solo la prima corrispondenza?
Il flag g (globale) è disattivato. Senza di esso JavaScript si ferma alla prima corrispondenza, il che è corretto per una validazione e sbagliato per un'estrazione. Attiva g per elencare tutte le corrispondenze.
Come trovo corrispondenze su più righe?
Due flag diversi fanno due cose diverse. m (multiline) fa corrispondere ^ e $ all'inizio e alla fine di ogni riga. s (dotAll) fa corrispondere . anche ai caratteri di nuova riga. Per "qualsiasi cosa, a capo compresi" senza s, la formula abituale è [\s\S]*.
Che cos'è un gruppo di cattura con nome?
(?<year>\d{4}) cattura quattro cifre con il nome year, così puoi leggere match.groups.year invece di contare le parentesi e richiamarlo come $<year> in una sostituzione. I gruppi con nome rendono leggibili i pattern lunghi e resistono alle modifiche che aggiungono o tolgono altri gruppi.
Una regex può essere lenta o pericolosa?
Sì. I pattern con quantificatori annidati come (a+)+ o alternative sovrapposte possono richiedere un tempo esponenziale con alcuni input (catastrophic backtracking, un vero vettore di denial of service). Se un pattern blocca questa pagina, è la stessa cosa che bloccherebbe il tuo server. Preferisci classi di caratteri specifiche a .* ed evita di annidare i quantificatori.
Devo validare gli indirizzi email con una regex?
Solo in modo approssimativo. Il preset di questo strumento riconosce la forma comune e scarta gli errori di battitura evidenti, che è tutto ciò che un modulo dovrebbe fare. Un pattern pienamente conforme a RFC 5322 è lungo migliaia di caratteri e comunque non può dirti se la casella esiste. Controlla la forma, poi invia un'email di conferma.
Una breve guida rapida alle regex
• . qualsiasi carattere tranne il ritorno a capo · \d cifra · \w carattere di parola · \s spazio bianco · \b confine di parola
• * zero o più · + uno o più · ? facoltativo · {n,m} da n a m volte · aggiungi ? dopo uno di questi per renderlo lazy
• [abc] uno tra · [^abc] nessuno tra · [a-z] intervallo · (x|y) alternativa · (?:x) gruppo non catturante
• ^ inizio · $ fine · (?=x) lookahead · (?!x) lookahead negativo · (?<=x) lookbehind (JavaScript e PCRE, non tutti i motori)
• Fai l'escape dei caratteri speciali con una barra rovesciata: \. \? \( \[ \\
JavaScript vs PCRE: le differenze in cui ti imbatterai davvero
JavaScript non ha quantificatori possessivi (a++), né gruppi atomici, né gli ancoraggi \A o \Z (usa ^ e $ senza il flag m), e dei modificatori in linea supporta solo la forma con ambito, (?i:...), arrivata con ES2025; la forma senza ambito (?i) all'inizio di un pattern è un errore di sintassi. Supporta invece lookbehind, gruppi con nome ed escape delle proprietà Unicode come \p{L} quando il flag u è attivo. Il modulo re di Python inoltre non supporta \p{...} senza il pacchetto regex, e RE2 di Go non ha alcun lookaround. Se un pattern deve funzionare in più linguaggi, resta nel sottoinsieme comune: classi di caratteri, gruppi semplici, ancoraggi e quantificatori greedy o lazy.
Strumenti gratuiti correlati
- Guida rapida alle regex — Ogni token delle espressioni regolari con un esempio funzionante, il supporto in JavaScript, PCRE/PHP, Python, Go, Java e .NET e un link Provalo che apre il tester regex già compilato.
- Formattatore JSON — Formatta, minifica e valida JSON, con gli errori di parsing localizzati per riga e colonna. Nel tuo browser, senza upload.
- Codificatore / decodificatore Base64 — Codifica testo o file in Base64, trasforma immagini in data URI con snippet CSS e <img>, e decodifica Base64 in un file con anteprima. Nulla esce dal tuo browser.
- Contatore di parole — Conta parole, caratteri, frasi e tempo di lettura, e verifica i limiti di X, LinkedIn, Instagram, YouTube, SEO e SMS mentre scrivi.