Tester regex
Regular expressions pattern-match text for validation, search-replace, and log parsing. Test patterns with live highlighting before dropping into production code — avoid catastrophic backtracking surprises on user input.
Pattern
Flag
Testo di prova
Output
[0] Hello
[6] world
[12] 123
How to test a regex
1. Enter regex pattern (without outer slashes or with flags).
2. Set flags: g global, i case insensitive, m multiline.
3. Paste sample text in test string area.
4. Review matches, capture groups, and replace preview if available.
Esempi di espressioni regolari
Convalida simile alla posta elettronica
^[\w.-]+@[\w.-]+\.\w+$ rileva semplici email: non perfette per RFC ma utili per i moduli.
Estrai le date ISO
\d{4}-\d{2}-\d{2} trova 2024-03-15 nelle righe di log per la sostituzione di grep.
Aiutante di Slugify
Sostituisci [^a-z0-9]+ con il trattino per lo slug URL dalla stringa del titolo.
Quando l'espressione regolare aiuta
• Durante la convalida di stringhe strutturate (telefono, codice postale).
• Durante l'analisi dei log semistrutturati.
• Quando si imparano i gruppi di cattura e il lookahead.
Quando evitare le espressioni regolari
• Quando si analizza HTML o JSON: usa parser adeguati.
• Quando l'espressione regolare diventa illeggibile: suddivisa in logica del codice.
• Quando ReDoS rischia sui modelli forniti dall'utente nel server: timeout e lunghezza limite.
Consapevolezza di ReDoS
I quantificatori nidificati come (a+)+ su stringhe dannose bloccano la CPU: evita le espressioni regolari dell'utente sul server o utilizza motori sicuri con timeout.
Convalidare vs estrarre
Il modello ancorato ^...$ convalida l'intera stringa; non ancorato trova la sottostringa ovunque.
Sostituisci negli editor
VS Code utilizza un'espressione regolare JS simile nella ricerca-sostituzione: prova qui, quindi incolla il modello.
Domande frequenti
Quale sapore regex?
JavaScript RegExp: esistono differenze PCRE (il supporto lookbehind varia in base alla versione del motore).
Bandiera globale g?
Trova tutte le corrispondenze non solo la prima: testStateful con lastIndex in JS.
Fuggire da personaggi speciali?
. *+? [ ] ( ) { } | \ ^ $ è necessario eseguire l'escape per la corrispondenza letterale.
Catturare i gruppi?
Le parentesi ( ) creano gruppi numerati accessibili in sostituzione $1 $2.
Locale?
Sì.
Multilinea ^ $?
Il flag m fa sì che ^ $ corrisponda ai limiti della riga non all'intera stringa.