In questo articolo
Cos'è un'espressione regolare?
Un'espressione regolare (regex o regexp) è una sequenza di caratteri che definisce un pattern di ricerca. Viene utilizzata per cercare, confrontare, estrarre, sostituire e validare testo. I pattern regex sono supportati nativamente in quasi tutti i linguaggi di programmazione e rappresentano uno strumento fondamentale nel kit di ogni sviluppatore.
Le regex possono variare da pattern semplici come \d+ (una o più cifre) a pattern multi-riga complessi con lookahead, backreference e gruppi con nome. Sebbene potenti, le regex complesse possono essere difficili da leggere e mantenere — il tester regex ti aiuta a costruire e verificare i pattern in modo interattivo.
Come funziona il nostro tester regex
Il tester regex fornisce corrispondenze in tempo reale con evidenziazione visuale mentre scrivi.
- Corrispondenza in tempo reale — evidenzia tutte le corrispondenze nella stringa di test mentre digiti il pattern
- Supporto ai flag — attiva/disattiva i flag global, case-insensitive, multiline e dotAll
- Visualizzazione dei gruppi di cattura — mostra i gruppi catturati e le catture con nome per pattern complessi
Prova gratuitamente — nessuna registrazione richiesta
Testa un'espressione regolare →Quando usare il tester regex
Il tester regex è utile ogni volta che devi sviluppare o fare il debug di un pattern prima di incorporarlo nel codice.
- Validazione dei form — sviluppa e testa pattern per email, telefono, codice postale o validazione di input personalizzati
- Analisi dei log — costruisci regex per estrarre campi dalle righe di log prima di elaborarle con grep o awk
- Estrazione dati — testa pattern per il scraping o il parsing di dati strutturati da testo o HTML
Domande frequenti
Qual è la differenza tra quantificatori greedy e lazy?
I quantificatori greedy (*, +, ?) corrispondono al massimo possibile. I quantificatori lazy (*?, +?, ??) corrispondono al minimo possibile. Ad esempio, sulla stringa <a>testo</a>, il pattern <.*> corrisponde all'intera stringa (greedy), mentre <.*?> corrisponde solo a <a> (lazy). I quantificatori lazy sono essenziali per il parsing di HTML o strutture annidate.
Come faccio a trovare un punto letterale o un altro carattere speciale in regex?
Esegui l'escape del carattere con una barra rovesciata: \. corrisponde a un punto letterale, \* a un asterisco letterale. I caratteri speciali che richiedono l'escape sono: . * + ? ^ $ { } [ ] | ( ) \. Se devi trovare uno di questi caratteri in modo letterale, antepongli sempre \.
Perché la mia regex funziona diversamente in JavaScript rispetto a Python?
Linguaggi diversi implementano varianti di regex leggermente diverse. Le differenze principali includono: Python usa (?P<nome>) per i gruppi con nome, mentre JavaScript usa (?<nome>); il supporto al lookbehind varia; alcune funzionalità come \K (keep) esistono in PCRE ma non in JavaScript. Testa sempre la tua regex nel contesto del linguaggio di destinazione.