Test regex

Prova i pattern su testo reale, direttamente nel browser.

Corrispondenze

  
#TipoValorePosizione

Funziona nel browser. Quello che scrivi non viene inviato da nessuna parte.

Come testare un'espressione regolare

  1. Scrivi o incolla il tuo pattern e scegli i flag che ti servono.
  2. Incolla il testo su cui vuoi verificare la corrispondenza.
  3. Controlla le corrispondenze evidenziate, la tabella dei gruppi, oppure anteprima una sostituzione.

Guida rapida alla sintassi regex

PatternCorrisponde a
\dQualsiasi cifra, da 0 a 9
\wQualsiasi lettera, cifra o carattere _
\sQualsiasi carattere di spaziatura
+Uno o più del token precedente
*Zero o più del token precedente
?Zero o uno, oppure rende pigro un quantificatore
^ e $Inizio e fine della stringa o della riga

Funzionalità regex di JavaScript

FunzionalitàSintassiNota
Gruppi con nome(?<name>...)Supportati da ES2018
Lookbehind(?<=...) e (?<!...)Supportati da ES2018
Modalità Unicodeflag uNecessaria per le property escape Unicode come \p{Letter}
Case-insensitiveflag iStessa idea della maggior parte degli altri linguaggi

Consigli per scrivere i pattern

  • Fai l'escape dei caratteri speciali come . ( ) [ ] con una barra inversa quando intendi il carattere letterale.
  • Usa un gruppo non catturante (?:...) per raggruppare quando non ti serve richiamare quella corrispondenza in seguito.
  • I quantificatori greedy prendono il più possibile. Aggiungi un ? dopo uno di essi, come +?, per una corrispondenza pigra che si ferma al primo punto possibile.
  • Testa anche i casi limite, come una stringa vuota o spazi extra, non solo il testo che ti aspetti corrisponda.

Domande su Test regex

Perché il mio pattern ha smesso di rispondere?

Alcuni pattern possono fare backtracking in modo esponenziale su certi testi. La corrispondenza viene calcolata in un worker in background con un limite di 1,5 secondi, così un pattern che va in loop viene fermato invece di bloccare la scheda.

Cosa significano i flag?

g trova tutte le corrispondenze invece della sola prima, i ignora maiuscole e minuscole, m fa corrispondere ^ e $ riga per riga, s fa sì che il punto corrisponda anche a newline, u attiva la modalità Unicode completa, y ancora la ricerca all'ultimo indice, e d aggiunge le posizioni di inizio e fine per ogni corrispondenza.

La casella di sostituzione modifica il mio testo di prova?

No. Mostra cosa produrrebbe String.replace in un riquadro separato, così il testo di prova che hai scritto resta esattamente com'era.

Sono supportati i gruppi di cattura con nome?

Sì. Scrivi un gruppo come (?<name>...) e il suo nome compare accanto al numero del gruppo nella tabella delle corrispondenze.

Il mio testo viene inviato da qualche parte?

No. La corrispondenza viene calcolata in un worker dentro la tua stessa scheda del browser, e niente di ciò che scrivi lascia la pagina.

Quale variante di regex viene usata?

Il motore RegExp nativo di JavaScript del tuo browser, lo stesso che esegue i tuoi pattern se stai costruendo una web app o uno script Node.js.

Cos'è il catastrophic backtracking?

È quando un pattern con gruppi ripetuti annidati, come (a+)+b, può impiegare un tempo esponenzialmente più lungo per fallire man mano che l'input cresce anche solo di un carattere. Il timeout di 1,5 secondi del worker qui blocca un pattern del genere prima che possa bloccare la pagina.

^ e $ possono corrispondere all'inizio e alla fine di ogni riga, non solo dell'intera stringa?

Sì, attiva il flag m (multilinea). Senza di esso, ^ e $ corrispondono solo all'inizio e alla fine dell'intero testo di prova.

Strumenti correlati