Vai al contenuto
helpyself

Tester per regex

Local only — nothing is uploaded unless you save or share it.

Un tester per espressioni regolari, eseguite in sicurezza sul tuo testo.

  1. Scrivi il tuo pattern e scegli i flag che ti servono
  2. Incolla il testo su cui provarlo
  3. Leggi le corrispondenze evidenziate e i gruppi di cattura sotto
//

Salva questo strumento

Tieni Tester per regex a portata di mano

Aggiungi ai preferiti

Su questo strumento

Le espressioni regolari sono compatte e implacabili, e il modo abituale di impararne una è cambiare un carattere e vedere che succede. Questo tester rende immediato quel ciclo: le corrispondenze si evidenziano mentre scrivi, ogni gruppo di cattura è elencato con il suo valore e gli errori di sintassi sono segnalati in parole chiare invece di restituire nulla in silenzio. Usa il motore di espressioni regolari JavaScript del tuo browser, quindi quello che vedi qui è esattamente quello che farà il tuo codice, compreso il comportamento dei flag e i gruppi con nome. Una cosa che vale la pena sapere è che qui il tuo pattern gira in un thread in secondo piano e non nella pagina. Certi pattern, in particolare la ripetizione annidata come il classico a-più fra parentesi ripetuto, possono impiegare un tempo esponenziale su alcuni input, e JavaScript non offre alcun modo di interrompere una regex una volta partita. Quasi tutti i tester online bloccano la scheda quando succede. Qui il thread in secondo piano viene semplicemente scartato e ti si dice che il pattern ha impiegato troppo — il che è anche un utile avvertimento che lo stesso pattern bloccherebbe il tuo server.

Domande frequenti

Di quale dialetto di regex si tratta?

JavaScript, con il motore del tuo browser. Vuol dire che quello che vedi qui è esattamente quello che farà il tuo codice JavaScript o TypeScript. I pattern scritti per PCRE, Python o Go possono comportarsi diversamente, in particolare intorno al lookbehind e agli escape delle proprietà Unicode.

Posso affidare a questo tester un pattern lento?

Sì, ed è il motivo per cui ha questa forma. Un tester di espressioni regolari che esegue il pattern nella pagina può essere bloccato dal backtracking catastrofico: un pattern che impiega minuti su una stringa corta. Qui il tuo gira in un worker con un limite di tempo, quindi un pattern impazzito viene segnalato anziché congelare la scheda.

Che cosa significa il tempo scaduto?

Il tuo pattern ha impiegato troppo a finire. La ripetizione annidata come (a+)+ può richiedere un tempo esponenziale su certi input, un problema noto come backtracking catastrofico. È un avvertimento reale: lo stesso pattern in produzione bloccherebbe una richiesta e non solo una scheda del browser.

Perché il mio pattern blocca altri tester ma non questo?

Perché qui la ricerca gira in un thread in secondo piano. JavaScript non può interrompere una regex in esecuzione, quindi un tester che valuta nella pagina non ha modo di riprendersi e la scheda si congela. Un thread in secondo piano si può semplicemente scartare.

Che differenza c'è fra il flag global e nessun flag?

Senza il flag global viene restituita solo la prima corrispondenza. Con esso la ricerca prosegue per tutta la stringa. Cambia anche il modo in cui il motore tiene traccia della posizione fra le chiamate, sorgente comune di comportamenti sorprendenti quando un oggetto regex viene riutilizzato.

I gruppi di cattura con nome sono supportati?

Sì. I gruppi scritti come (?<nome>...) sono elencati con i loro nomi accanto a quelli numerati, così puoi confermare che catturino quello che ti aspetti prima di collegarli al codice.

Aiutaci a migliorare questo strumento

Hai trovato un errore, vuoi una modifica, o ti manca uno strumento?

/regex-tester

↑↓ per muoverti · Invio per aprire · Esc per chiudere