Regex Tester: testa le espressioni regolari online
Con il Regex Tester puoi testare le espressioni regolari online usando il motore JavaScript del tuo browser. Le corrispondenze vengono evidenziate ed elencate con posizione e gruppi di cattura: ad esempio, \b([\w.-]+)@([\w-]+\.[a-zA-Z]{2,})\b trova 2 indirizzi e-mail in un testo di contatti, con nome e dominio. Il pattern e il testo non lasciano il tuo browser.
Creato da Jakub Martyniak
Vuoi distribuire questo modello? Esegui la tua app su un VPS con accesso root completo.
Input
Risultato
Inserisci un pattern a sinistra per visualizzare i risultati.
Risultato di esempio
Come appare un risultato nello strumento di test delle espressioni regolari
Inserisci un pattern e un testo. Lo strumento elenca ogni corrispondenza con posizione e gruppi di cattura e, in modalità sostituzione, mostra il testo risultante. L'esempio qui sotto usa indirizzi fittizi; le tue corrispondenze dipendono dal pattern e dal testo.
Esempio · Flag g (tutte le corrispondenze)
2 risultatiInput
- Pattern
- \b([\w.-]+)@([\w-]+\.[a-zA-Z]{2,})\b
- Il gruppo 1 acquisisce la parte prima della @, il gruppo 2 il dominio.
- Testo di prova
- info@example.com, support@example.org, no-at.example.net
Risultato
- Risultato 1
- info@example.com
- Indice 0 · Gruppo 1: info · Gruppo 2: example.com
- Risultato 2
- support@example.org
- Indice 18 · Gruppo 1: support · Gruppo 2: example.org
- Sostituisci con $1 [at] $2
- info [at] example.com, support [at] example.org, no-at.example.net
- L'indirizzo senza @ non viene riconosciuto e resta invariato.
Perché usare questo strumento
Più di un semplice test di corrispondenza
Panoramica delle principali funzioni del Regex Tester.
Corrispondenze evidenziate e conteggiate
Dopo una breve pausa nella digitazione, lo strumento conta tutte le corrispondenze e le evidenzia nel risultato; se sono moltissime, evidenzia le prime 1000.
Panoramica dei gruppi di acquisizione
Ogni corrispondenza compare in un elenco con il relativo indice; sotto sono mostrati separatamente i gruppi di cattura numerati e con nome.
Flag g, i, m, s e u
Attiva o disattiva i cinque flag tramite caselle di controllo: hanno lo stesso significato che nel codice JavaScript. g è attivo per impostazione predefinita.
Modalità di sostituzione
Sostituisce le corrispondenze tramite String.prototype.replace(), usando $1, $2 per i gruppi di cattura. Puoi copiare il risultato con un clic.
Protezione dal catastrophic backtracking
L'elaborazione avviene in un Web Worker e viene interrotta dopo 1 secondo, così un pattern come (a+)+ non blocca la scheda.
Funziona solo nel browser
Il pattern e il testo di prova vengono elaborati esclusivamente sul client: nulla viene inviato a un server.
Guida
Come testare le espressioni regolari online
Dal pattern al risultato copiato: ecco come usare il Regex Tester.
Passaggio 1
Seleziona la modalità
Seleziona in alto la modalità «Trova corrispondenze» per verificare le corrispondenze oppure «Sostituisci» per sostituire il testo.
Passaggio 2
Inserisci il pattern
Inserisci la tua espressione regolare senza barre nel campo «Pattern» oppure usa «Carica esempio» per caricare un pattern per gli indirizzi e-mail con un testo di esempio.
Passaggio 3
Imposta i flag
Attiva o disattiva i flag g, i, m, s e u tramite caselle di controllo. g è attivo per impostazione predefinita; i flag attivi compaiono dopo il pattern, ad es. /g.
Passaggio 4
Inserisci testo di prova
Incolla il tuo testo nel campo «Testo di prova». Dopo una breve pausa nella digitazione, le corrispondenze vengono evidenziate nel risultato e conteggiate in alto.
Passaggio 5
Verifica e copia le corrispondenze
L'elenco mostra ogni corrispondenza con il relativo indice e i gruppi di cattura. Con il pulsante Copia, copi tutte le corrispondenze, una per riga.
Passaggio 6
Sostituisci e copia il risultato
Nella modalità «Sostituisci», inserisci nel campo «Sostituisci con» il nuovo testo usando $1, $2 per i gruppi di cattura, poi copia il risultato con il pulsante Copia.
Promemoria
Promemoria regex: gli elementi più importanti
Un'espressione regolare (regex) è un pattern di ricerca per il testo: ti permette di trovare, verificare, estrarre o sostituire stringhe come indirizzi e-mail, date o voci di log. Puoi provare questi elementi della sintassi JavaScript direttamente nel Regex Tester qui sopra.
| Token | Significato |
|---|---|
| . | Qualsiasi carattere tranne un'interruzione di riga; con il flag s anche le interruzioni di riga |
| \d | Una cifra da 0 a 9 |
| \w | Carattere di parola: solo A–Z, a–z, 0–9 e _, quindi non lettere come ä, é o ñ |
| \s | Carattere di spazio, come uno spazio, una tabulazione o un'interruzione di riga |
| \p{L} | Qualsiasi lettera, anche accentata, solo con il flag u |
| \b | Confine di parola, ad es. \bRegex\b per trovare esattamente questa parola |
| ^ $ | Inizio e fine del testo; con il flag m, di ogni riga |
| [abc] | Uno dei caratteri a, b o c |
| [^abc] | Qualsiasi carattere tranne a, b e c |
| a|b | a o b |
| * + ? | Zero o più, una o più, zero o una occorrenza |
| {2,5} | Da due a cinque ripetizioni |
| .*? | Un ? dopo il quantificatore lo rende non greedy (lazy): trova il minor numero possibile di caratteri |
| ( … ) | Gruppo di cattura, elencato nel Regex Tester come gruppo 1, 2 ecc. |
| (?<name> … ) | Gruppo di cattura con nome, elencato nel Regex Tester anche sotto il suo nome |
| (?: … ) | Gruppo non di cattura, ad es. per alternative o quantificatori |
| (?= … ) (?! … ) | Lookahead: solo se dopo segue o non segue … |
| \. | Una barra rovesciata davanti a un carattere speciale lo tratta letteralmente, ad es. \. per un punto |
Scopri di più
Altri strumenti
Confrontare testi online (Diff Checker)
Confronta online due testi, configurazioni o versioni di codice, visualizza le differenze riga per riga e parola per parola e copiale come Unified Diff. Funziona interamente nel browser.
Creato da Dimitri Heissler
Formatter JSON
Formatta, minimizza e convalida JSON con evidenziazione della sintassi, indicazione degli errori e download, interamente nel browser.
Creato da Jakub Martyniak
Validatore YAML
Verifica la sintassi YAML e formattala in modo normalizzato oppure convertila direttamente in JSON. Supporta più documenti separati da `---` (ad es. manifest Kubernetes), con errori che indicano riga e colonna esatte. Tutto nel browser.
Creato da Jakub Martyniak
Generatore Crontab
Crea espressioni Cron tramite un modulo, con spiegazioni in italiano e un'anteprima delle prossime esecuzioni: tutto nel browser.
Creato da Jakub Martyniak
Codificatore e decodificatore URL
Codifica e decodifica URL e testo online: confronto tra encodeURIComponent, encodeURI e formato dei moduli, con tabella dei parametri di query e generatore di link UTM. Funziona interamente nel browser.
Creato da Dimitri Heissler
Generatore .htaccess e generatore htpasswd
Crea online file Apache .htaccess e .htpasswd: reindirizzamenti 301, HTTPS, protezione con password bcrypt, regole WordPress, pagine di errore, caching, GZIP e protezione contro l’hotlinking. Funziona interamente nel browser.
Creato da Dimitri Heissler
FAQ
Domande frequenti sul Regex Tester
Risposte brevi sulle espressioni regolari e questo strumento.
Un elenco di tutte le corrispondenze con posizione e gruppi di acquisizione. Il pattern \b([\w.-]+)@([\w-]+\.[a-zA-Z]{2,})\b trova nel testo «info@example.com, support@example.org, no-at.example.net» 2 corrispondenze: info@example.com a partire dall’indice 0 e support@example.org a partire dall’indice 18, ciascuna con nome e dominio nei gruppi 1 e 2. In modalità sostituzione, usando $1 [at] $2 il risultato diventa «info [at] example.com, support [at] example.org, no-at.example.net».
Sì. Il Regex Tester è gratuito e non richiede un account: apri la pagina, inserisci il pattern e il testo di prova e verifica le corrispondenze.
No. L'elaborazione avviene nel tuo browser, in un Web Worker che usa il motore RegExp del browser. Nulla viene caricato o registrato nei log. È importante perché i testi di prova contengono spesso righe di log o indirizzi e-mail reali.
Il motore JavaScript nativo (ECMAScript) del tuo browser, quindi la stessa sintassi regex di JavaScript, TypeScript e Node.js. PCRE (PHP, Perl) e il modulo re di Python differiscono nei dettagli: \K non esiste in JavaScript e i gruppi con nome si scrivono (?<name>…) anziché (?P<name>…).
g (globale) restituisce tutte le corrispondenze ed è attivo per impostazione predefinita. Senza g, lo strumento si comporta come RegExp.exec() e restituisce al massimo una corrispondenza. i ignora maiuscole e minuscole, m fa sì che ^ e $ corrispondano all'inizio e alla fine di ogni riga, s permette al punto di trovare anche le interruzioni di riga e u attiva la modalità Unicode, necessaria ad esempio per \p{L}.
Passa alla modalità «Sostituisci» e inserisci il nuovo testo nel campo «Sostituisci con». Usa $1, $2 ecc. per inserire i gruppi di cattura e $<name> per quelli con nome. Lo strumento usa String.prototype.replace(): senza il flag g viene sostituita solo la prima corrispondenza. Puoi copiare il risultato con il pulsante Copia.
Sì. Sotto ogni corrispondenza trovi i relativi gruppi di cattura: quelli numerati come 1, 2 ecc. e quelli con nome, come (?<jahr>\d{4}), anche sotto il rispettivo nome. Se un gruppo non ha catturato nulla, compare «(nessuna corrispondenza)».
Se il pattern non è valido, ad esempio perché una parentesi non è chiusa, lo strumento mostra il messaggio di errore del motore del browser. Se l'elaborazione dura più di 1 secondo, viene interrotta: di solito il pattern è soggetto a catastrophic backtracking, ad esempio a causa di quantificatori annidati come (a+)+. Semplifica il pattern o accorcia il testo di prova.
Il numero di corrispondenze è sempre esatto. Vengono evidenziate al massimo le prime 1000 corrispondenze ed elencate le prime 200, ciascuna con indice e gruppi di cattura. Se sono più di 200, compare un avviso sopra il testo evidenziato.
Hai altre domande?
Contatta il supportoLa tua applicazione ha bisogno di un server affidabile
Un VPS di ZAP-Hosting mette online la tua applicazione o il tuo progetto in modo affidabile.
Nessuna configurazione. Nessun rischio. Online in pochi secondi.
Cerchi altri strumenti? Visualizza tutti gli strumenti per sviluppatori
