Vai al contenuto
Case Converter Online
it

Tester regex

Scrivi un'espressione regolare e un testo di prova per vedere ogni corrispondenza evidenziata mentre scrivi. Controlla i gruppi di cattura e prova un trova e sostituisci prima di usarlo nel codice.

Flag

Corrispondenze

0

Scrivi un pattern per vedere le corrispondenze.

Dettagli delle corrispondenze e gruppi

Usa $1 o $<nome> per i gruppi e $& per l'intera corrispondenza.

Cosa fa un tester regex

Un tester regex ti fa provare un’espressione regolare su un testo vero. Un’espressione regolare, o regex, è un piccolo linguaggio di pattern per trovare testo. \d{4} significa “quattro cifre di fila”. [\w.+-]+@ significa “uno o più caratteri di parola, punti, segni più o trattini, seguiti da una @”. Le regex si usano per trovare e sostituire negli editor di codice, per la convalida dei moduli, l’analisi dei log e la pulizia dei dati.

È facile sbagliare un pattern di poco. Con un tester provi il pattern su un testo di esempio reale e vedi esattamente cosa cattura prima di metterlo in uno script. Questo mostra le corrispondenze mentre scrivi, elenca ogni gruppo di cattura e mostra un’anteprima della sostituzione.

Come usare il tester regex

  1. Scrivi il pattern in Espressione regolare. Non mettere le barre: le mostra lo strumento, con i flag attivi dopo la barra di chiusura.
  2. Attiva o disattiva i flag con i pulsanti g, i, m, s, u e y.
  3. Incolla o scrivi un testo di esempio in Testo di prova.
  4. Leggi il risultato in Corrispondenze. Ogni corrispondenza è evidenziata e il contatore mostra quante ne sono state trovate.
  5. Controlla Dettagli delle corrispondenze e gruppi per la posizione di ogni corrispondenza e il testo catturato da ogni gruppo.
  6. Per provare un trova e sostituisci, scrivi in Sostituisci con. Il testo modificato compare in Risultato, pronto da copiare.

Non sai da dove partire? Scegli una voce da Pattern comuni. Ci sono pattern per indirizzi email, indirizzi web, date, indirizzi IPv4, colori esadecimali, numeri di telefono, numeri e doppi spazi. Tieni conto che il pattern per i numeri di telefono segue il formato statunitense, quello per le date il formato aaaa-mm-gg, e quello per i numeri usa il punto come separatore decimale: su 3,50 trova 3 e 50 come due numeri separati.

I flag

Flag Nome Cosa cambia
g global Trova tutte le corrispondenze, non solo la prima
i ignore case hello trova anche Hello e HELLO
m multiline ^ e $ corrispondono all’inizio e alla fine di ogni riga
s dot all . corrisponde anche a un a capo
u unicode Legge un’emoji come un solo carattere e ammette le classi \p{...}
y sticky Ogni corrispondenza deve iniziare esattamente dove è finita la precedente

Esempi

Questi risultati vengono dall’esecuzione dei pattern in questo strumento.

Pattern Flag Testo Corrispondenze
\d+ nessuno a1 b22 c333 1
\d+ g a1 b22 c333 1, 22, 333
hello gi Hello hello HELLO Hello, hello, HELLO
^\w+ gm due righe: one two e three four one, three
a.b g a, a capo, b nessuna corrispondenza
a.b gs a, a capo, b una corrispondenza

La pagina si apre con un esempio sulle date. Il pattern (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) trova tre date nel testo di esempio: 2026-10-31, 2024-01-15 e 2026-11-02. La sostituzione $<day>/$<month>/$<year> trasforma la prima in 31/10/2026, cioè nel formato italiano. Per la direzione opposta, il pattern (\d{2})/(\d{2})/(\d{4}) con la sostituzione $3-$2-$1 trasforma 31/10/2026 in 2026-10-31.

Una sostituzione è utile anche per fare pulizia. Il pattern \s{2,} con un solo spazio come sostituzione trasforma too many spaces in too many spaces.

Come funziona

Il tester costruisce un RegExp JavaScript a partire dal tuo pattern e dai flag, poi lo esegue sul testo di prova. Con il flag g continua a cercare fino alla fine. Salta anche le corrispondenze vuote, così un pattern come x* non può andare in loop all’infinito.

Il testo viene trasformato in caratteri sicuri prima di essere evidenziato. Qualsiasi HTML o script nel tuo testo di esempio viene mostrato come semplici caratteri e non viene mai eseguito.

La ricerca avviene in un Web Worker, un thread in background. Se un pattern gira per più di 1 secondo, il worker viene fermato e ne parte uno nuovo. Invece di una scheda bloccata, vedi un messaggio.

Se un pattern non è valido, vedi “Pattern non valido:” seguito dal messaggio di errore del browser, che resta in inglese. Per esempio, una ( da sola dà “Unterminated group” (gruppo non chiuso).

Consigli e limiti

  • Attenzione alle ripetizioni annidate. Pattern come (a+)+$ o (\w+\s?)*$ possono richiedere un tempo enorme su un testo che corrisponde quasi. Si chiama backtracking catastrofico. Fai in modo che ogni parte corrisponda a qualcosa di preciso, ed evita una ripetizione dentro un’altra.
  • Fai l’escape dei caratteri speciali. Per trovare un punto vero, scrivi \.. Lo stesso vale per ? * + ( ) [ ] { } ^ $ | e per la barra rovesciata stessa.
  • Ancora i pattern di convalida. Per un campo di un modulo, racchiudi il pattern tra ^ e $ così deve corrispondere tutto il valore, non solo una parte.
  • Attenzione alle lettere accentate. In JavaScript \w comprende solo lettere ASCII, cifre e trattino basso, anche con il flag u. Su perché la città è più bella, \w+ trova perch, la, citt, pi e bella, e \bcittà\b non trova niente perché \b non vede la à come lettera. Per le parole italiane usa \p{L}+ con il flag u: trova perché, la, città, è, più e bella.
  • Una regex non è un vero parser. Va bene per individuare email o date in un testo. Non è un modo affidabile per analizzare l’HTML o per verificare che un indirizzo email esista davvero.
  • I risultati molto grandi vengono limitati. Lo strumento elenca fino a 5.000 corrispondenze e mostra le prime 300 righe nella tabella dei dettagli.

Altri modi per provare una regex

Dalla riga di comando, grep -oE stampa ogni corrispondenza su una riga:

echo 'Call 555-010-9999 on 2026-10-31' | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}'

Questo stampa 2026-10-31. In Python, re.findall(r'\d{4}-\d{2}-\d{2}', 'from 2026-10-31 to 2024-01-15') restituisce ['2026-10-31', '2024-01-15']. In JavaScript usa text.match(/pattern/g), oppure text.matchAll() per i gruppi.

Strumenti correlati

Per ripulire i titoli da usare negli indirizzi web, usa il generatore di slug. Per rendere sicuro un testo dentro un link, usa il codificatore e decodificatore di URL.

Tester regex: domande e risposte

Quale variante di regex usa questo tester?

Usa il motore JavaScript integrato nel tuo browser, quindi i risultati coincidono con quelli di RegExp in JavaScript e Node.js. La maggior parte dei pattern semplici si comporta allo stesso modo in Python, PHP e Java, ma funzioni come il lookbehind, i gruppi con nome e le classi Unicode possono differire leggermente da un linguaggio all'altro.

Perché vedo una sola corrispondenza?

Il flag g è disattivato. Senza di esso, una regex JavaScript si ferma dopo la prima corrispondenza. Premi il pulsante g per trovare tutte le corrispondenze nel testo di prova.

Cosa significa quando il tester dice che si è fermato dopo 1 secondo?

Il tuo pattern ha impiegato troppo tempo sul testo, il che di solito indica un backtracking catastrofico. Ripetizioni annidate come (a+)+ o (.*)* possono costringere il motore a provare un numero enorme di percorsi. Il tester esegue la ricerca in un worker in background e lo interrompe, così la pagina non si blocca. Rendi le ripetizioni più specifiche e riprova.

Come uso un gruppo di cattura nella sostituzione?

Scrivi $1, $2 e così via per i gruppi numerati, $<nome> per un gruppo con nome e $& per l'intera corrispondenza. Per esempio, il pattern (\w+)@(\w+) con la sostituzione $2 at $1 trasforma a@b c@d in b at a d at c.

Il mio testo di prova viene inviato da qualche parte?

No. La ricerca avviene nel tuo browser. Niente di ciò che scrivi viene caricato o salvato.

Altri strumenti per codice e dati

Vedi tutti gli strumenti