Testo
Regex Tester / Find & Replace
Test di espressioni regolari su testo reale: corrispondenze evidenziate e gruppi di cattura analizzati, oppure sostituzione delle corrispondenze trovate con un nuovo testo.
A regular expression (regex) is a compact language for describing patterns in text — for searching, validating a format, or replacing matches. This tool highlights matches in real text as you type the pattern, breaks out capture groups, and supports a find-and-replace mode.
How to use it
- Search: enter a pattern and some test text — every match is highlighted and capture groups are broken out separately.
- Replace: switch to Replace mode, provide a replacement template (referencing groups with $1, $2), and see the result instantly.
- Flags (g, i, m, s) toggle independently and immediately affect how many matches are found and how.
Common uses
- Building and debugging a regex before pasting it into code — you see the result without running the program.
- Bulk find-and-replace against a pattern (e.g. reformatting phone numbers or dates).
- Validating an input format (email, card number, slug) against real examples.
Things to keep in mind
Greedy quantifiers (*, +) grab as many characters as possible — add ? for the minimal match instead (e.g. .*? instead of .*).
Syntax varies slightly between languages — an expression that works here (a JavaScript engine) may need adjusting for PCRE, .NET, or Python.
Articolo su questo strumento: Espressioni regolari: sintassi di base e pattern comuni
Domande frequenti
Quale motore regex viene utilizzato?
Lo strumento usa il motore regex di JavaScript, non PCRE, quindi alcune sintassi specifiche di PCRE (come asserzioni ricorsive o certe modalità di corrispondenza possessiva) non funzioneranno qui; sono supportati flag comuni come g, i, m, s e u.
Qual è la differenza tra quantificatori greedy e lazy, e tra Test e Replace?
Un quantificatore greedy come * o + cattura quanto più testo possibile, mentre la versione lazy (*?, +?) si ferma il prima possibile; per le modalità, Test evidenzia le corrispondenze ed elenca i gruppi di cattura (inclusi quelli con nome), mentre Replace applica il testo sostitutivo, con riferimenti come $1, a ogni corrispondenza.
Il mio testo e la mia espressione vengono inviati a un server?
No, la valutazione dell'espressione regolare avviene interamente lato client nel tuo browser, nulla viene inviato online.
Cos'è il backtracking catastrofico?
Quantificatori annidati come (a+)+ possono, su determinate stringhe di input, costringere il motore a esaminare un numero esponenziale di combinazioni — la pagina o lo script "si bloccano" su un'espressione apparentemente semplice. È una vulnerabilità reale (ReDoS), quindi i quantificatori annidati complessi vanno testati su stringhe lunghe quasi corrispondenti.
Perché la mia espressione funziona in un linguaggio di programmazione ma non in un altro?
La sintassi regex non è completamente standardizzata: PCRE (PHP e molti altri linguaggi), .NET, Python re e JavaScript presentano piccole differenze nel supporto di alcuni costrutti (ad esempio i look-behind o i gruppi con nome) — un'espressione scritta per un motore non funziona sempre senza modifiche in un altro.