Editor

In attesa di input o esecuzione regex…

Azioni

?
?
?

Informazioni Tester Regex Online

Incolla del testo, scrivi un pattern regex, attiva i flag e vedi immediatamente cosa corrisponde. Questo tester regex utilizza lo stesso motore RegExp dei runtime JavaScript moderni, quindi ciò che vedi qui è ciò che otterrai nel tuo codice frontend, script Node.js o validazione lato server. I gruppi di cattura nominati, i lookaround e la modalità Unicode sono supportati quando il tuo runtime li supporta.

Perché Usare Questo Tester di Regex

  • Corrispondenza in tempo reale con una modalità "live" opzionale per rieseguire mentre digiti
  • Elenco strutturato delle corrispondenze con indice iniziale, indice finale, valore e gruppi di cattura nominati
  • Supporto completo della sintassi RegExp JavaScript/ECMAScript (stesso motore del tuo runtime JS)
  • Controlli flag: g, i, m, s, u, y – combina e sperimenta in sicurezza
  • Informazioni base sulle prestazioni con tempo di esecuzione per ogni esecuzione in millisecondi
  • Output di riepilogo solo testo per un rapido copia/incolla in ticket, documenti o messaggi di commit
  • Eccellente per l'apprendimento: prototipizza pattern senza eseguire un progetto completo o una suite di test
  • Ideale per compiti quotidiani: analisi di log, validazione, estrazione URL/ID, rapida pulizia dei dati
  • L'elenco dei risultati è leggermente limitato per evitare il blocco dell'interfaccia utente con testi grandi

🔧 Come Usare il Tester di Regex for regex-tester

1

1. Incolla o Digita il Tuo Testo di Prova

Aggiungi il testo in cui vuoi cercare: log, frammenti, parti di CSV, HTML, JSON, qualsiasi cosa sia testo semplice.

2

2. Scrivi il Tuo Pattern Regex

Inserisci l'espressione regolare **senza barre circostanti**. Ad esempio: <code>\b\w+@\w+\.\w+</code> per un pattern base simile a un'email, o <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code> con gruppi nominati.

3

3. Imposta le Flag (g, i, m, s, u, y)

Attiva flag come <code>g</code> (globale), <code>i</code> (case-insensitive) o <code>m</code> (multiriga). Sotto il cofano, il tester costruisce <code>new RegExp(pattern, flags)</code> esattamente come fa JavaScript.

4

4. Esamina Corrispondenze & Gruppi

Rivedi ogni corrispondenza con il suo indice, indice finale opzionale e gruppi di cattura. I gruppi nominati appaiono come una mappa simile a JSON per poterli copiare in fixture di test, parser o documentazione.

5

5. Copia il Riepilogo

Usa il riepilogo testuale come rapporto rapido: elenca le corrispondenze con indici e gruppi, pronto per incollare in ticket, commenti di code review o cheat sheet.

Dettagli Sintassi & Motore Regex

Classi di Caratteri & Basi

Blocchi fondamentali supportati dal motore RegExp di JavaScript.

PatternSignificatoEsempio
.Qualsiasi carattere tranne le interruzioni di riga (a meno della flag <code>s</code>)<code>a.c</code> → corrisponde a <code>abc</code>
\d, \w, \sCifre, caratteri di parola, spazi bianchi<code>\d+</code> → <code>123</code>
\D, \W, \SVersioni negate delle precedenti<code>\S+</code> → sequenze senza spazi
[abc]Insieme di caratteri<code>[aeiou]</code> → una singola vocale
[^abc]Insieme negato<code>[^0-9]</code> → non cifra
^, $Inizio e fine input (o riga con <code>m</code>)<code>^Hello</code>, <code>!$</code>

Quantificatori

Ripetizione di token precedenti, con comportamento avido e pigro.

PatternSignificatoEsempio
?0 o 1 volta<code>colou?r</code> → corrisponde a <code>color</code> e <code>colour</code>
*0 o più<code>a*b</code> → <code>b</code>, <code>aaab</code>
+1 o più<code>\d+</code> → <code>1</code>, <code>123</code>
{n}Esattamente n<code>a{3}</code> → <code>aaa</code>
{n,}Almeno n<code>\d{3,}</code> → <code>123</code>, <code>1234</code>
{n,m}Tra n e m<code>a{2,4}</code> → <code>aa</code>, <code>aaa</code>, <code>aaaa</code>

Gruppi, Lookaround & Catture Nominate

Funzionalità più avanzate fornite dai motori JavaScript moderni.

FunzionalitàSintassiEsempio
Gruppi di cattura(...)<code>(\d{3})-(\d{2})</code> → prefisso + suffisso
Gruppi non di cattura(?:...)<code>(?:https?|ftp)://</code>
Riferimenti all'indietro\1, \2, ...<code>(\w)\1</code> → <code>aa</code>, <code>bb</code>
Lookahead(?=...), (?!...)<code>\w+(?=! )</code> → parola prima di <code>! </code>
Lookbehind*(?<=...), (?<!...)<code>(?<=#)\w+</code> → testo dopo <code>#</code> (*nei motori moderni)
Gruppi nominati(?<nome>...)<code>(?<anno>\d{4})</code> → <code>gruppi.anno</code> nei risultati

Flag (Opzioni)

Le flag del tester corrispondono direttamente alle flag RegExp di JavaScript.

FlagNomeEffetto
gGlobaleTrova tutte le corrispondenze invece della prima
iIgnora maiuscole/minuscoleCorrispondenza senza distinzione maiuscole/minuscole
mMultiriga<code>^</code> e <code>$</code> corrispondono ai limiti di riga
sDotAll<code>.</code> corrisponde anche agli interruzioni di riga
uUnicodeAbilita la modalità Unicode e le escape di proprietà nei motori moderni
yStickyCorrisponde solo all'indice corrente (usato con <code>lastIndex</code>)

Prestazioni e Sicurezza

Il motore JavaScript sottostante esegue le regex in modo sincrono. Per mantenere l'interfaccia utente reattiva, il tester limita il numero di corrispondenze raccolte (ad esempio, i primi 500 risultati in modalità globale). Questo aiuta a evitare di sovraccaricare l'interfaccia utente, ma non sostituisce audit completi delle prestazioni per pattern complessi o critici.

Strumenti Regex da Rig di Comando

Una volta che il tuo pattern funziona qui, puoi riutilizzare la stessa regex o una simile nel tuo terminale, script o lavori CI:

Linux / macOS

Cerca con grep (regex estesa)

grep -E 'pattern' file.txt

Trova le righe che corrispondono a un dato pattern

Cerca e sostituisci con sed

sed -E 's/pattern/replacement/g' input.txt > output.txt

Sostituzioni in batch in file di testo

Windows / PowerShell

Ricerca regex in PowerShell

Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txt

Trova pattern SSN in stile USA nei file di log (esempio)

Sostituzione regex in PowerShell

(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txt

Sostituzioni semplici basate su regex

Applicazioni Pratiche delle Regex

Sviluppo Web e Frontend

  • Convalida email, nomi utente, slug o ID personalizzati nei moduli
  • Estrai parametri di rotta da URL o percorsi
  • Prototipizza rapidamente pattern per la validazione lato client
// Basic email-like validation
/^[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}$/i.test(email);
// Route params: /post/123
const match = pathname.match(/^\/post\/(\d+)/);

Log, Dati e Backend

  • Analizza timestamp e livelli dalle righe di log
  • Normalizza spazi bianchi e pulisci testo disordinato
  • Estrai ID, email o riferimenti da contenuti non strutturati
// Collapse repeated whitespace
const normalized = text.replace(/\s+/g, ' ').trim();
// Simple log line matcher
const m = line.match(/\[(?<date>\d{4}-\d{2}-\d{2})] (?<level>INFO|ERROR): (?<msg>.*)/);

Pulizia Dati e Script Rapidi

  • Rimuovi tag o attributi HTML indesiderati prima dell'analisi
  • Estrai tutti gli URL, email o ID da un lungo blocco di testo
  • Prepara i campi del dataset per l'importazione in un altro sistema

❓ Frequently Asked Questions

Perché la mia regex non corrisponde a nulla?

Errori comuni: 1) Caratteri speciali non escapati (come ., ?, +), 2) Dimenticare il flag g quando ci si aspetta più corrispondenze, 3) Mancanza di ancore (^, $) o confini di parola (\b), 4) Utilizzo di funzionalità non ancora supportate dal motore JavaScript (come alcuni lookbehind). Prova a semplificare il pattern e ad aggiungere i pezzi gradualmente.

⏱️Cosa significa il tempo di esecuzione (ms)?

Ogni esecuzione viene temporizzata utilizzando performance.now(). Il valore è una misurazione approssimativa di quanto tempo ha impiegato la regex per eseguirsi sull'input corrente. È utile per individuare pattern chiaramente costosi, ma non è un benchmark completo né una garanzia delle prestazioni in produzione.

🔍Qual è la differenza tra prima corrispondenza e modalità globale?

Senza il flag g, JavaScript restituisce solo la **prima** corrispondenza (se presente). Con g, il tester utilizza input.matchAll() per raccogliere **tutte** le corrispondenze (limitate a un massimo sicuro), inclusi indici e gruppi di cattura. Usa la modalità globale ogni volta che ti interessano più occorrenze.

🌍Questo supporta Unicode e le sequenze di escape <code>\p{...}</code>?

Sì, quando il tuo motore JavaScript lo supporta. Abilita il flag u per attivare la modalità Unicode, che sblocca funzionalità come \p{Letter} o \p{Script=Greek} nei browser moderni e nelle versioni recenti di Node.js.

⚠️Questo può rilevare il backtracking catastrofico?

Il tester può suggerire pattern lenti tramite il tempo di esecuzione, ma non può prevenire completamente il backtracking catastrofico: il motore sottostante viene comunque eseguito in modo sincrono. Usa questo strumento come sistema di allerta precoce, poi esegui benchmark e rivedi attentamente i pattern complessi nel tuo codebase.

Pro Tips

Best Practice

Costruisci la tua regex a piccoli pezzi. Inizia con qualcosa di semplice che corrisponda, poi aggiungi ancore, gruppi e quantificatori passo dopo passo.

Best Practice

Usa gruppi di cattura nominati (<code>(?<nome>...)</code>) quando possibile. Rendono le tue corrispondenze auto-documentanti e molto più facili da leggere durante le revisioni del codice.

Best Practice

Fai attenzione con <code>.*</code> e quantificatori annidati. Possono causare pesanti backtracking su input grandi. Rendi i pattern più specifici o limita la ripetizione con <code>{n,m}</code>.

Best Practice

Durante il debug, rimuovi temporaneamente il flag <code>g</code> e concentrati sulla prima corrispondenza per semplificare il modello mentale.

Additional Resources

Other Tools