Editor
In attesa di input o esecuzione regex…
Azioni
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. 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. 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. 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. 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. 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.
| Pattern | Significato | Esempio |
|---|---|---|
| . | 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, \s | Cifre, caratteri di parola, spazi bianchi | <code>\d+</code> → <code>123</code> |
| \D, \W, \S | Versioni 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.
| Pattern | Significato | Esempio |
|---|---|---|
| ? | 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à | Sintassi | Esempio |
|---|---|---|
| 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.
| Flag | Nome | Effetto |
|---|---|---|
| g | Globale | Trova tutte le corrispondenze invece della prima |
| i | Ignora maiuscole/minuscole | Corrispondenza senza distinzione maiuscole/minuscole |
| m | Multiriga | <code>^</code> e <code>$</code> corrispondono ai limiti di riga |
| s | DotAll | <code>.</code> corrisponde anche agli interruzioni di riga |
| u | Unicode | Abilita la modalità Unicode e le escape di proprietà nei motori moderni |
| y | Sticky | Corrisponde 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.txtTrova le righe che corrispondono a un dato pattern
Cerca e sostituisci con sed
sed -E 's/pattern/replacement/g' input.txt > output.txtSostituzioni in batch in file di testo
Windows / PowerShell
Ricerca regex in PowerShell
Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txtTrova pattern SSN in stile USA nei file di log (esempio)
Sostituzione regex in PowerShell
(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txtSostituzioni 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?
., ?, +), 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)?
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?
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>?
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?
Pro Tips
Costruisci la tua regex a piccoli pezzi. Inizia con qualcosa di semplice che corrisponda, poi aggiungi ancore, gruppi e quantificatori passo dopo passo.
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.
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>.
Durante il debug, rimuovi temporaneamente il flag <code>g</code> e concentrati sulla prima corrispondenza per semplificare il modello mentale.
Additional Resources
Other Tools
- Abbellitore CSS
- Abbellitore HTML
- Abbellitore Javascript
- Abbellitore PHP
- Selettore Colori
- Estrattore Sprite
- Decodificatore Base64
- Codificatore Base64
- Formattatore Csharp
- Formattatore CSV
- Dockerfile Formatter
- Formattatore Elm
- Formattatore ENV
- Formattatore Go
- Formattatore GraphQL
- Formattatore HCL
- Formattatore INI
- Formattatore JSON
- Formattatore LaTeX
- Formattatore Markdown
- Formattatore Objective-C
- Php Formatter
- Formattatore Proto
- Formattatore Python
- Formattatore Ruby
- Formattatore Rust
- Formattatore Scala
- Formattatore Script Shell
- Formattatore SQL
- Formattatore SVG
- Formattatore Swift
- Formattatore TOML
- Typescript Formatter
- Formattatore XML
- Formattatore YAML
- Formattatore Yarn
- Minificatore CSS
- Html Minifier
- Javascript Minifier
- Minificatore JSON
- Minificatore XML
- Visualizzatore Intestazioni HTTP
- PDF a Testo
- Controllore Posizione SERP
- Ricerca Whois