TESTER REGEX ONLINE

Testa Espressioni Regolari
in Tempo Reale

Scrivi, testa ed esegui il debug di pattern regex con evidenziazione istantanea, gruppi di cattura, rilevamento errori e supporto multi-motore — direttamente nel tuo browser.

Espressione
Testo di Prova
Enter a pattern to start matchingJS

Inserisci un regex e una stringa di prova per visualizzare le corrispondenze.

Nessuna corrispondenza trovata.

Riferimento Rapido

PERCHÉ SCEGLIERCI

Migliore della concorrenza

Tutto ciò di cui hai bisogno per creare, testare e verificare espressioni regolari: più veloce, chiaro e ottimizzato per dispositivi mobili.

Evidenziazione in Tempo Reale

Visualizza le corrispondenze durante la digitazione con gruppi di cattura contrassegnati da colori distinti per una lettura chiara.

7 Motori di Linguaggio

Testa pattern per JavaScript, Python, PHP/PCRE, Java, Golang, C# e Rust con esportazione di codice in un solo clic.

Spiegazione dei Token

Ogni singolo elemento del tuo regex spiegato con chiarezza: quantificatori, gruppi, ancore e classi di caratteri.

Oltre 15 Modelli Pronti

Accelera il lavoro con pattern pronti all’uso per Email, URL, Indirizzi IP, Telefoni, Date e Password sicure.

Modalità Sostituisci ed Elenco

Verifica le operazioni di sostituzione con anteprima immediata oppure estrai tutte le corrispondenze sotto forma di lista.

Completamente Mobile-Friendly

Esperienza completa su ogni schermo grazie a una comoda interfaccia a schede progettata per smartphone.

GUIDA COMPLETA PER SVILUPPATORI

La Guida Completa per Testare ed Eseguire il Debug di Espressioni Regolari

Benvenuto su Regex Tester Online (regextesteronline.com), lo strumento professionale basato su browser per testare, creare e verificare espressioni regolari in tempo reale. Progettato per sviluppatori e analisti, include evidenziazione immediata, gruppi di cattura, rilevamento errori e supporto completo per JavaScript, Python, Java, PHP, Go, C# e Rust.

1. Cos’è un Tester Regex e Perché gli Sviluppatori ne Hanno Bisogno?

Un tester regex (espressioni regolari) è uno strumento software interattivo che compila, esegue e valida pattern di espressioni regolari su stringhe di test in tempo reale. Nello sviluppo software moderno, le espressioni regolari (regex o regexp) sono fondamentali per parsing di testo, convalida di form, manipolazione di dati ed elaborazioni di ricerca e sostituzione. Tuttavia, comporre pattern complessi senza un tester regex online dedicato porta frequentemente a errori difficili da identificare.

Senza un verificatore di regex online, si rischiano problematiche comuni come cicli di backtracking infiniti causati da quantificatori ingordi (greedy), limiti di parola posizionati male o mancato escape di caratteri speciali. Testare i pattern ricompilando il codice dell’applicazione e analizzando i log rallenta il ritmo di sviluppo. Grazie al nostro javascript regex tester online e al tester regex per python, puoi ispezionare gruppi di cattura e simulare sostituzioni all’istante.

Vantaggio Chiave: Il nostro tester regex funziona al 100% lato client nel tuo browser. Nessun dato di prova riservato, password, chiave API o log di sistema viene mai inviato a server esterni, assicurando la massima privacy.

2. Differenze tra i Motori Regex: Perché la Scelta del Linguaggio è Cruciale

Uno degli errori più diffusi è credere che la sintassi delle regex sia universale. Benché molti dialetti derivino dallo standard PCRE (Perl Compatible Regular Expressions), ogni ambiente (JavaScript, Python, Java, Go, PHP, C# e Rust) utilizza un motore proprietario con regole di escaping e funzionalità uniche.

Ad esempio, le asserzioni lookbehind a lunghezza variabile, i quantificatori possessivi e le classi di caratteri Unicode variano ampiamente tra Java, Python e JavaScript. Ecco una tabella di confronto tecnico:

Linguaggio / MotoreLibreria SottostanteLookbehindsQuantificatori PossessiviGruppi con NomeRischio ReDoS
JavaScript (V8/SpiderMonkey)IrregexpVariabili e Fissi (ES2018+)No(?<nome>...)Alto (Backtracking)
Python (modulo re)Stile PCRE / SRESolo lunghezza fissaNo(?P<nome>...)Alto (Backtracking)
Java (java.util.regex)NFA DeterministicoLunghezza limitata massimaSì (++, *+, ?+)(?<nome>...)Alto (Backtracking)
PHP (PCRE2)libpcre2Completamente variabiliSì (++, *+)(?P<nome>...)Alto (Backtracking)
Golang (regexp)RE2 (DFA/NFA)Nessuno (Omissione intenzionale)No(?P<nome>...)Nullo (Tempo Lineare)
C# (.NET 7+)System.Text.RegularExpressionsLunghezza variabile supportataNo (Gruppi atomici)(?<nome>...)Basso (Opzione NonBacktracking)
Rust (crate regex)Motore regex di RustNessuno (DFA / Aho-Corasick)No(?P<nome>...)Nullo (Tempo Lineare)

3. Tester Regex JavaScript e JS Regex Tester Online

Nello sviluppo di applicazioni web con React, Vue, Next.js o microservizi Node.js, il nostro tester regex per javascript offre piena aderenza agli standard ECMAScript. In JavaScript le espressioni regolari si definiscono con la notazione letterale /pattern/flags oppure tramite il costruttore new RegExp("pattern", "flags").

Flag ECMAScript Supportati nel Tester JS:

  • g (Global): Trova tutte le corrispondenze nella stringa senza fermarsi alla prima.
  • i (Ignore Case): Ignora la differenza tra lettere maiuscole e minuscole.
  • m (Multiline): I caratteri di inizio (^) e fine ($) corrispondono a ogni singola riga invece che all’intero documento.
  • s (dotAll): Permette al carattere punto (.) di corrispondere anche ai caratteri di nuova riga (\n, \r).
  • u (Unicode): Attiva il supporto ai punti di codice UTF-16 e alle proprietà Unicode come \p{Letter}.
  • y (Sticky): Esegue la ricerca esclusivamente a partire dalla posizione puntata da lastIndex.

Verificare i pattern sul nostro tester evita falsi negativi durante la convalida di form con campi multilinea o caratteri internazionali.

Esempio di Produzione in JavaScript
// Validazione sicura di indirizzo email in ECMAScript
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
const isValid = emailPattern.test("developer@regextesteronline.com");
console.log(isValid); // true

4. Tester Regex Python & Online Python Regex Tester

Il modulo re di Python gestisce pipeline di estrazione dati, script di scraping e framework web come Django o FastAPI. Un tester regex dedicato a Python è essenziale per via di alcune peculiarità sintattiche.

La differenza principale risiede nell’escape dei caratteri. Nelle normali stringhe Python le barre rovesciate (backslash) vengono interpretate come sequenze di escape (\n, \t). Quando si scrivono espressioni regolari, è fondamentale usare raw strings precedute da r"..." (es. r"\d+\.\d+") per evitare che l’interprete consumi le barre prima del motore regex.

Funzioni Principali del Modulo re in Python:

  • re.search(pattern, string): Scansiona l’intera stringa per individuare la prima corrispondenza.
  • re.match(pattern, string): Verifica la corrispondenza solo all’inizio della stringa (ancora ^ implicita).
  • re.findall(pattern, string): Restituisce tutte le corrispondenze non sovrapposte come lista di stringhe o tuple.
  • re.finditer(pattern, string): Restituisce un iteratore di oggetti Match con indici di inizio e fine.
  • re.sub(pattern, repl, string): Sostituisce le corrispondenze con un testo o il risultato di una funzione.
Esempio con il Modulo re di Python
import re

# Estrazione numeri di telefono con gruppi con nome in Python
pattern = r"^\+?(?P<country>\d{1,3})?[ -]?(?P<area>\d{3})[ -]?(?P<num>\d{4})$"
text = "+1 555 0199"

match = re.search(pattern, text)
if match:
    print("Country:", match.group("country"))
    print("Area:", match.group("area"))
    print("Number:", match.group("num"))

5. Tester Regex Java & Java Regex Tester Online

Gli sviluppatori Java in ambito Spring Boot, Quarkus o Android utilizzano quotidianamente le classi java.util.regex.Pattern e java.util.regex.Matcher, che presentano alcune insidie tipiche.

Il doppio backslash di Java (\\)

Poiché i letterali stringa in Java interpretano \ come carattere di escape, per passare \d al compilatore regex è necessario scrivere "\\d". Per cercare un carattere backslash letterale occorrono quattro barre: "\\\\". Il generatore di codice del nostro tester formatta ed esporta automaticamente le stringhe nel formato Java corretto.

Quantificatori Possessivi in Java

Java supporta i quantificatori possessivi (*+, ++, ?+, {n,m}+). A differenza dei quantificatori greedy che restituiscono caratteri in caso di fallimento parziale, i possessivi non rilasciano mai i caratteri già catturati. Questo protegge le applicazioni da attacchi ReDoS e velocizza l’analisi di grandi moli di testo.

Esempio con java.util.regex in Java
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexVerify {
    public static void main(String[] args) {
        // Notare il doppio backslash obbligatorio nelle stringhe Java
        String regex = "^[A-Z]{2,3}-\\d{4}$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher("ORD-9842");

        if (matcher.matches()) {
            System.out.println("Valid SKU identifier!");
        }
    }
}

6. Test per Golang, PHP, C# e Rust

Oltre a JavaScript, Python e Java, il nostro tester copre i principali linguaggi backend moderni:

Tester Regex per Golang (RE2)

Il pacchetto regexp di Go sfrutta l’algoritmo RE2 di Russ Cox. Esclude intenzionalmente i riferimenti all’indietro (backreferences) e i lookahead complessi per garantire sempre un’esecuzione in tempo lineare O(n). Il tester segnala eventuali sintassi non supportate da Go RE2.

Tester Regex per PHP (PCRE2)

PHP supporta PCRE tramite preg_match() e preg_replace(). I pattern richiedono delimitatori (es. /.../) e supportano espressioni ricorsive (?R) per verificare parentesi nidificate e tag HTML.

Tester Regex per C# (.NET)

Il motore System.Text.RegularExpressions di .NET è tra i più completi, con supporto per i balancing groups (?<open-close>...). Da .NET 7 è possibile utilizzare anche i generatori di codice sorgente tramite [GeneratedRegex].

Tester Regex per Rust

Il crate ufficiale regex in Rust offre automi a stati finiti (DFA/NFA) con garanzia di sicurezza della memoria e tempi di esecuzione lineari, proteggendo i servizi da sovraccarichi anomali della CPU.

7. Formule e Pattern Regex Pronti per la Produzione

Hai bisogno di validare regole comuni? Ecco i pattern collaudati e pronti per l’uso:

Validazione Indirizzo EmailRFC 5322 Pragmatico
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Valida mailbox e nomi di dominio bloccando caratteri speciali vietati agli estremi.

Politica Password RobustaSicurezza Lookahead
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

Richiede almeno una minuscola, una maiuscola, un numero, un simbolo speciale e minimo 8 caratteri.

Riconoscimento URL e Indirizzi WebProtocollo + Dominio + Percorso
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$

Cattura indirizzi HTTP e HTTPS con parametri query e porte di rete.

Validazione Indirizzo IPv4Ottetti 0-255
^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

Valida indirizzi IP decimali puntati impedendo valori superiori a 255.

Data ISO 8601 (AAAA-MM-GG)Timestamp Standard
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

Verifica anni a 4 cifre, mesi a 2 cifre (01-12) e giorni a 2 cifre (01-31).

8. Prevenire il Backtracking Catastrofico (Attacchi ReDoS)

Il pericolo maggiore nelle regex eseguite sui server di produzione è il backtracking catastrofico (catastrophic backtracking), causa principale degli attacchi ReDoS (Regular Expression Denial of Service). Quando motori basati su backtracking (JavaScript, Python o Java) incontrano quantificatori nidificati (es. (a+)+$ o (x+x+)+y) su stringhe che non corrispondono, il tempo di calcolo cresce esponenzialmente: O(2^n).

Una stringa creata ad arte di soli 30 caratteri può bloccare il loop degli eventi di Node.js o saturare i thread in Java per molti minuti. Come proteggersi:

  • Evita quantificatori nidificati: Non inserire mai quantificatori + o * dentro un gruppo a sua volta quantificato (es. evita ([a-z]+)+).
  • Rendi le alternative mutuamente esclusive: Assicurati che i rami alternativi (a|b) non possano corrispondere agli stessi caratteri.
  • Usa quantificatori possessivi o gruppi atomici: In Java o PHP adotta ++ o (?>...) per impedire al motore di ripercorrere caratteri già consumati.
  • Ancora i tuoi pattern: Usa ^ e $ per delimitare la ricerca ed evitare che il motore ripeta il controllo su ogni singolo indice del testo.
  • Valuta motori lineari: Per validare input utente arbitrari, valuta linguaggi come Go (RE2) o Rust che assicurano tempi di calcolo lineari.

9. Domande Frequenti (FAQ)

Risposte alle domande più frequenti sulla sintassi delle espressioni regolari, sulla validazione dei pattern e sull’utilizzo del tester online:

Cos'è un tester di regex online?

Un tester di regex (tester di espressioni regolari) è uno strumento interattivo per sviluppatori che consente di scrivere, testare, eseguire il debug e convalidare pattern di ricerca in tempo reale. Offre evidenziazione visiva immediata, separazione dei gruppi di cattura, segnalazione degli errori di sintassi e simulazione del motore senza dover eseguire script locali.

Qual è il miglior tester di espressioni regolari online?

Il miglior strumento è Regex Tester Online (regextesteronline.com). Include evidenziazione istantanea, spiegazione dettagliata dei token, esportazione di codice in 1 clic per 7 linguaggi di programmazione (JavaScript, Python, Java, PHP, Go, C# e Rust) ed esecuzione 100% locale nel browser per proteggere i tuoi dati sensibili.

Cosa significa *$ in una regex?

Nelle espressioni regolari, * è un quantificatore che indica 'zero o più ripetizioni dell'elemento precedente', mentre $ è un'ancora che individua la 'fine della stringa' (o della riga in modalità multilinea). Ad esempio, .*$ corrisponde all'intera parte restante della riga.

Come verificare un pattern regex?

Per testare un'espressione regolare:

  1. Inserisci il pattern nel campo Espressione di Regex Tester Online.
  2. Digita il testo di prova contenente casi validi ed eccezioni.
  3. Osserva le corrispondenze evidenziate in tempo reale e controlla i gruppi di cattura.

Le regex sono un linguaggio di programmazione?

No, le espressioni regolari non sono un linguaggio di programmazione generico, bensì un linguaggio specifico di dominio (DSL) progettato per la ricerca, la convalida e la manipolazione di testi all'interno di linguaggi come JavaScript, Python o Java.

Come verificare una stringa con regex nel codice?

Metodi tipici:

  • JavaScript: /pattern/.test("testo")
  • Python: re.search(r"pattern", "testo")
  • Java: Pattern.compile("pattern").matcher("testo").find()
Usa il pulsante 'Codice' del nostro strumento per copiare frammenti già pronti all'uso.

Dove si utilizzano principalmente le espressioni regolari?

Campi di applicazione essenziali:

  • Convalida di form: Controllo di email, numeri di telefono, CAP e password sicure.
  • Estrazione dati: Recupero di URL, date o codici da testi complessi.
  • Analisi di log: Filtraggio rapido di eventi e registri server.
  • Refactoring di codice: Ricerca e sostituzione avanzata in ambienti come VS Code.

Qual è il modo migliore per imparare le regex?

Inizia con le classi di caratteri comuni (\d, \w), i quantificatori (+, *) e le ancore (^, $). Utilizza la nostra Scheda di Riferimento e sperimenta direttamente sul tester per acquisire padronanza velocemente.

Pronto a testare le tue espressioni regolari?

Usa l’editor interattivo in alto, seleziona il motore desiderato e inizia subito il debug.

Vai al Tester Regex
Copied to clipboard!