Tutti gli strumenti

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.