Tester di Regex

/ /

Digita un’espressione regolare, incolla il testo su cui provarla e il tester esegue il pattern ed elenca ogni corrispondenza trovata. Ogni risultato mostra dove inizia la corrispondenza e il contenuto di ogni gruppo di cattura, così vedi esattamente cosa ha catturato il pattern. Attiva i flag maiuscole/minuscole, multilinea e dotall per cambiare il comportamento del pattern.

Come provare una regex

  1. 1

    Inserisci il pattern

    Digita l'espressione senza delimitatori; il tester la racchiude in `/ /` per te. Un pattern non valido mostra un messaggio di errore chiaro invece di fallire in silenzio.

  2. 2

    Scegli i flag

    Attiva `i` (ignora maiuscole/minuscole), `m` (multilinea) o `s` (dotall) per riconoscere come ti serve.

  3. 3

    Incolla il testo di prova

    Aggiungi il testo da cercare. Il tester lo scorre tutto e trova ogni corrispondenza, non solo la prima.

  4. 4

    Ispeziona le corrispondenze

    Ogni corrispondenza mostra la sua posizione (offset) nel testo, la corrispondenza completa e ogni gruppo di cattura numerato.

Cosa ti mostra il tester

Eseguire un pattern a mente, o con un grep veloce, ti dice se qualcosa corrisponde. Il tester mostra anche:

  • Ogni corrispondenza, con la sua posizione. Cerca sempre in tutto il testo e segnala ogni corrispondenza con l’offset del carattere in cui inizia.
  • Quale gruppo ha catturato cosa. Ogni corrispondenza è scomposta nella corrispondenza completa e nei gruppi di cattura numerati, così confermi che un (...) ha catturato la parte che ti aspettavi.
  • Cosa cambiano i flag. Attiva i, m o s e riprova per vedere come cambiano il risultato il riconoscimento senza distinzione di maiuscole, il multilinea o il dotall.

I flag, in parole semplici

Flag Nome Cosa cambia
i Ignora maiuscole/minuscole A corrisponde anche a a, e viceversa
m Multilinea ^ e $ corrispondono all’inizio e alla fine di ogni riga, non solo dell’intero testo
s Dotall . corrisponde anche ai ritorni a capo

Il riconoscimento è sempre globale: il tester restituisce ogni corrispondenza del testo, quindi non c’è un flag “global” separato da attivare. I pattern vengono eseguiti con il motore PCRE e il supporto Unicode, così classi come \w e \d si comportano in modo coerente su testo internazionale.

Problemi di regex comuni che questo aiuta a individuare

Sintomo Causa abituale
Una sola corrispondenza gigante che copre tutto .* è avido; usa .*? o una classe negata come [^"]*
^ o $ corrispondono una volta sola Manca il flag m su un testo multilinea
. si ferma ai ritorni a capo Manca il flag s
Gruppi di cattura in un ordine inatteso Le ( annidate spostano i numeri di gruppo; contale da sinistra a destra
Un pattern che va lento * o + annidati su alternative sovrapposte causano molto backtracking

Consigli per pattern più veloci e sicuri

  • Ancora con ^ quando la corrispondenza inizia dall’inizio, così il motore non scorre l’intera stringa.
  • Preferisci una classe di caratteri ([abc]) all’alternanza (a|b|c); le classi sono più veloci in ogni motore importante.
  • Sostituisci un .* avido con una classe negata come [^"]* quando conosci il terminatore, così non c’è backtracking.

Domande frequenti

Esegue il tuo pattern con PCRE, il motore integrato in PHP, con la modalità Unicode attiva. La sintassi specifica di PCRE, come \d, \b e i lookaround, funziona come previsto. Se userai il pattern in JavaScript, Python o un altro linguaggio, controlla le piccole differenze di sintassi prima di metterlo in produzione.

Tutte. Il tester cerca sempre in tutto il testo, quindi non c’è un flag “global” separato da attivare. Ogni corrispondenza è elencata con la sua posizione nel testo.

Sì. Ogni corrispondenza è scomposta nella corrispondenza completa e in ogni gruppo di cattura numerato, così confermi quale parte del testo ha catturato ogni (...).

i rende il riconoscimento indipendente da maiuscole e minuscole, m fa corrispondere ^ e $ a ogni confine di riga, e s permette a . di corrispondere ai ritorni a capo. Attivali o disattivali e riprova per confrontare i risultati.

Il tester mostra un messaggio di errore chiaro che descrive il problema, come una parentesi non chiusa o un gruppo non terminato, invece di restituire zero corrispondenze senza avvisare.

Strumenti correlati

Strumento disponibile in altre lingue