Vai al contenuto principale

Regex Tester

Testa e fai il debug delle tue espressioni regolari online

La tua regex non fa match come previsto? Incolla il tuo pattern e il testo qui sotto. Corrispondenze, gruppi di cattura e posizioni appaiono in pochi secondi.

Opzioni

Motore RE2 sicuro

RE2 garantisce un tempo di esecuzione lineare. Nessun rischio di ReDoS, anche con pattern complessi.

Gruppi di cattura dettagliati

Gruppi nominati e indicizzati mostrati con le loro posizioni byte esatte nel testo sorgente.

4 flag configurabili

Case-insensitive, multilinea, dot-all e non-greedy. Attivabili con un clic prima del test.

Risultati istantanei

Fino a 1.000 corrispondenze analizzate in tempo reale. Posizioni byte precise per ogni match.

UTF-8 nativo

Il pattern viene valutato su testo UTF-8. Accenti, emoji e caratteri speciali sono completamente supportati.

Una regex sbagliata in produzione costa ore di debug

Scrivere un'espressione regolare corretta al primo tentativo è raro. Edge case Unicode, differenze tra motori e parentesi mal chiuse causano bug silenziosi. Un tester online ti permette di verificare prima di deployare.

Tre casi d'uso principali:

  • Validare un pattern prima dell'integrazione. Verifica che la tua regex faccia match con ciò che ti aspetti, e nient'altro.
  • Fare il debug di un pattern esistente. Identifica perché una regex non cattura le sottostringhe corrette.
  • Testare la compatibilità RE2. Conferma che il tuo pattern funzioni con il motore RE2 di Go prima del deploy.

Come usare il regex tester in 3 passaggi

Passaggio 1: Inserisci il pattern

Digita la tua espressione regolare nel campo dedicato. Esempio per estrarre un dominio SPF:

include:(?P<domain>[a-z0-9._-]+)

Passaggio 2: Incolla il testo di prova

Incolla il testo contro cui vuoi testare la tua regex:

v=spf1 include:_spf.captaindns.com include:spf.protection.outlook.com ~all

Attiva i flag se necessario (case-insensitive, multilinea, ecc.).

Passaggio 3: Leggi i risultati

Ogni corrispondenza appare con la sua posizione byte, il contenuto matchato e i gruppi di cattura. I gruppi nominati sono identificati dal loro nome.


Cos'è un'espressione regolare?

Un'espressione regolare (regex) è un pattern che descrive un insieme di stringhe. Permette di cercare, validare o estrarre testo secondo regole precise.

Componenti fondamentali:

ElementoSintassiEsempioRisultato
Carattere letteraleaabc in "abcdef"matcha "abc"
Classe di caratteri[a-z][0-9]+ in "porta 443"matcha "443"
Quantificatore+, *, ?a+ in "aab"matcha "aa"
Gruppo di cattura(...)(abc) in "xabcx"cattura "abc"
Ancora^, $^v=spf1matcha a inizio riga
Alternativaa|bcat|dog in "my cat"matcha "cat"

Esempio concreto con gruppi nominati:

(?P<protocol>https?)://(?P<domain>[a-z0-9.-]+)

Applicato a https://captaindns.com/tools:

  • Gruppo protocol: https
  • Gruppo domain: captaindns.com

Sintassi RE2 vs PCRE: le differenze

RE2 (Go, Google) e PCRE (PHP, Python, Perl) differiscono su punti chiave. JavaScript usa un motore proprio, più vicino a PCRE per le funzionalità avanzate.

FunzionalitàRE2PCRE
Tempo di esecuzione garantitoLineare O(n)Esponenziale possibile
Lookahead/lookbehindNon supportatoSupportato
Backreference (\1)Non supportatoSupportato
Quantificatori possessiviNon supportatoSupportato
Gruppi nominati(?P<nome>...)(?P<nome>...) o (?<nome>...)
Flag non-greedy globale(?U)Non standard
UnicodeNativo (UTF-8)Tramite flag u

RE2 garantisce un tempo lineare. Questo elimina gli attacchi ReDoS (Regular Expression Denial of Service). Per questo è la scelta standard per i servizi web esposti a input non fidato.


Casi d'uso reali

Validare un record SPF

Situazione: Vuoi verificare che il tuo record SPF contenga i meccanismi include corretti.

Diagnosi: Testa il pattern include:([a-z0-9._-]+) contro il valore del tuo record TXT. Lo strumento elenca ogni dominio incluso con la sua posizione.

Azione: Confronta i domini estratti con la tua lista attesa. Un include mancante o errato diventa visibile immediatamente.

Estrarre indirizzi email da un testo

Situazione: Devi estrarre tutti gli indirizzi email da un file di configurazione o da un log.

Diagnosi: Usa il pattern [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} con il flag case-insensitive. Ogni email trovata appare come corrispondenza distinta.

Azione: Verifica che ogni indirizzo estratto sia legittimo. Controlla i falsi positivi come stringhe tipo user@localhost.

Debug di un pattern di log parsing

Situazione: Il tuo parser di log non cattura il timestamp nel formato corretto.

Diagnosi: Testa il pattern con gruppi nominati: (?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}). Verifica che i gruppi catturino le sottostringhe attese.

Azione: Modifica i quantificatori o le classi di caratteri fino a ottenere i valori corretti nei gruppi.


Errori di sintassi comuni

ErroreCausaCorrezione
error parsing regexpParentesi non chiusa o quantificatore senza targetVerifica parentesi e parentesi quadre
invalid escape sequenceSequenza di escape non riconosciuta in RE2Usa \\ per un backslash letterale
invalid named captureSintassi errata per un gruppo nominatoUsa (?P<nome>...) (non (?<nome>...))
invalid repeat countQuantificatore fuori limiteRiduci il valore del quantificatore
Nessun risultatoPattern troppo restrittivo o flag mancanteAttiva case-insensitive o dot-all

❓ FAQ - Domande frequenti

D: Perché la mia regex non trova nessuna corrispondenza?

R: Verifica la sintassi RE2: lookahead/lookbehind e backreference non sono supportati. Attiva il flag "case-insensitive" se il tuo testo contiene maiuscole inaspettate. Controlla anche i caratteri speciali non escapati.


D: Cos'è la sintassi RE2?

R: RE2 è il motore regex di Go. Garantisce un tempo di esecuzione lineare rispetto alla dimensione dell'input. PCRE, invece, può essere vulnerabile ad attacchi ReDoS.


D: Quali flag regex sono disponibili?

R: Quattro flag: case-insensitive (i), multilinea (m), dot matcha newline (s) e non-greedy (U). Ogni flag modifica il comportamento del motore per l'intero pattern.


D: Qual è il limite di dimensione del testo?

R: Il pattern è limitato a 10 KB, il testo di prova a 1 MB. Il numero massimo di corrispondenze restituite è 1.000. Questi limiti proteggono il servizio da abusi.


D: Cos'è un gruppo di cattura nominato?

R: Un gruppo nominato usa la sintassi (?P<nome>...) in RE2. Permette di estrarre una sottostringa per nome invece che per indice numerico. È utile per pattern complessi con più gruppi.


D: RE2 è compatibile con le regex JavaScript?

R: Parzialmente. RE2 supporta classi di caratteri, quantificatori e gruppi. Funzionalità assenti: lookahead, lookbehind, backreference e quantificatori possessivi.


D: I dati vengono conservati?

R: No. Pattern e testo vengono inviati all'API CaptainDNS per l'elaborazione, poi eliminati. Nessun contenuto viene memorizzato né registrato nei log.


Strumenti complementari

StrumentoUtilità
Hash GeneratorCalcolare l'hash di un testo matchato dalla tua regex
Codificatore/decodificatore Base64Decodificare un testo Base64 prima di testarlo con una regex
Codificatore/decodificatore URLDecodificare URL codificati prima dell'estrazione regex
Convertitore maiuscole/minuscoleNormalizzare le maiuscole di un testo prima di testarlo
Ispettore SPFVerificare i record SPF estratti con regex

Risorse utili


Impegno per la privacy

Il tuo pattern e il tuo testo vengono inviati all'API CaptainDNS esclusivamente per eseguire il test regex. Nessun contenuto viene conservato dopo l'elaborazione. Vengono registrate solo metriche tecniche anonime: dimensione del pattern, numero di corrispondenze, durata dell'esecuzione.