Regex
Tester di regex
Testa le espressioni regolari sul tuo testo, in tempo reale.
Informazioni sulle espressioni regolari
Un'espressione regolare (regex) è un pattern che descrive un insieme di stringhe — usato per cercare, validare o estrarre testo. Questo tester esegue il motore regex nativo di JavaScript interamente nel tuo browser, così puoi sperimentare un pattern su testo reale e vedere esattamente cosa corrisponde.
I quantificatori esistono in due varianti facili da confondere: quelli avidi (+, *, {2,5}) consumano quanto più testo possibile prima di tornare indietro (backtracking) per far corrispondere il resto del pattern, mentre le loro controparti pigre (+?, *?, {2,5}?) consumano invece quanto meno possibile. Contro <a><b> con <.+>, una corrispondenza avida cattura l'intera stringa, mentre <.+?> si ferma al primo >. Anche i gruppi hanno una biforcazione simile: (...) cattura il testo corrispondente per un riferimento successivo, mentre (?:...) raggruppa allo stesso modo senza catturare — utile quando ti serve la precedenza del raggruppamento ma non il suo output.
Dove lo incontrerai
- Validare formati di input come indirizzi email, numeri di telefono o codici postali
- Estrarre valori strutturati da righe di log o testo non strutturato
- Scrivere un pattern di trova-e-sostituisci per un refactoring su molti file
- Eseguire il debug del motivo per cui un pattern corrisponde più, o meno, di quanto previsto
Domande frequenti
Perché il mio pattern corrisponde solo una volta?
Senza il flag g (global), i metodi regex di JavaScript si fermano dopo la prima corrispondenza — questo è il comportamento reale che vedrebbe anche il tuo codice, non un limite di questo strumento. Attiva g per trovare ogni corrispondenza.
Quello che scrivo qui viene inviato a un server?
No. La corrispondenza avviene interamente nel tuo browser usando il motore regex integrato di JavaScript — nulla viene trasmesso da nessuna parte, il che evita anche di esporre un server a un pattern deliberatamente lento di "catastrophic backtracking".
Perché a volte la pagina si blocca su un pattern?
Alcuni pattern, come quantificatori annidati del tipo (a+)+, possono causare un catastrophic backtracking, in cui il tempo di corrispondenza cresce esponenzialmente con la lunghezza dell'input. Se un pattern si blocca, è il pattern stesso il problema, non questo strumento — prova un testo di prova più corto o riscrivi il pattern per evitare ripetizioni annidate.
Qual è la differenza tra quantificatori avidi e pigri?
Un quantificatore avido (+, *, {2,5}) fa corrispondere prima quanto più testo possibile, tornando indietro solo se ciò fa fallire il resto del pattern. La sua controparte pigra, scritta con un ? finale (+?, *?), fa invece corrispondere quanto meno possibile, espandendosi solo quando necessario. Contro <a><b>, il pattern avido <.+> corrisponde all'intera stringa, mentre quello pigro <.+?> si ferma al primo >. Ricorri ai quantificatori pigri ogni volta che "la corrispondenza più breve possibile" è ciò che vuoi davvero.