Vai al contenuto
helpyself

Spiegatore di regex

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

Uno spiegatore di regex: incolla un'espressione e leggi che cosa fa ogni sua parte, in italiano.

  1. Incolla la tua espressione regolare, con o senza le barre
  2. Leggi la scomposizione dall'alto in basso
  3. Segui il rientro per vedere a che cosa si applica ogni quantificatore
Con o senza le barre. Funzionano sia /\d{4}-\d{2}/g sia \d{4}-\d{2}.
Salva questo strumento

Tieni Spiegatore di regex a portata di mano

Aggiungi ai preferiti

Su questo strumento

Uno spiegatore di regex smonta un'espressione regolare e descrive ogni pezzo con parole comuni. Incolla un'espressione — con o senza le barre e i flag che la circondano — e ottieni uno schema: che cosa corrisponde a ogni elemento, quante volte può ripetersi e quali parti vengono catturate. Ciò che rende illeggibile una regex sono raramente i pezzi presi singolarmente. Quasi tutti sanno che cos'è \d. Quello che è davvero difficile da vedere è che cosa si applica a che cosa: se un segno più ripete un carattere o un gruppo intero, dove comincia e dove finisce un'alternanza, e che cosa sta guardando davvero un lookahead. Perciò la spiegazione è annidata, e l'annidamento è tutto il punto — il rientro risponde a quella domanda prima di qualsiasi parola. Legge l'espressione invece di eseguirla. Questo significa due cose utili. Un'espressione che impiegherebbe minuti a girare contro un ingresso ostile viene spiegata all'istante, perché leggerla costa una frazione del lavoro. E un'espressione che non compila viene spiegata comunque: se hai incollato qualcosa perché è rotto, sentirsi dire «SyntaxError» ti riporta al punto di partenza, quindi i problemi sono segnalati accanto alla scomposizione e non al suo posto. Nulla viene mandato da nessuna parte. Le espressioni portano spesso indizi sui dati per cui sono state scritte, e quelli restano nel tuo browser.

Domande frequenti

Che cosa significa questa regex?

Incollala e leggi lo schema. Ogni riga nomina un pezzo dell'espressione e dice a che cosa corrisponde; le righe rientrate stanno dentro il gruppo che hanno sopra. Se un quantificatore come + o {2,4} si applica a un pezzo, è indicato sulla stessa riga, ed è la parte che le persone leggono male più spesso.

Può spiegare un'espressione regolare scritta da qualcun altro?

È proprio a questo che serve. Incolla l'espressione e ottieni una scomposizione pezzo per pezzo — questo gruppo, questo quantificatore, questa classe di caratteri — invece di una singola frase di sintesi. Tradurre una regex in parole comuni è utile solo a quel livello di dettaglio, perché la parte che hai letto male di solito è un singolo elemento, e una parafrasi dell'intera espressione nasconde esattamente l'elemento che hai sbagliato.

Posso incollare un'espressione con le barre e i flag?

Sì. Sia /\d+/gi sia \d+ vengono capiti. Se i flag ci sono, vengono elencati con ciò che ciascuno fa, dato che g, i, m e s cambiano il comportamento dell'espressione più di quasi tutti i suoi caratteri.

Spiega una regex che non funziona?

Sì, ed è voluto. Una parentesi non chiusa, un quantificatore vagante o un conteggio impossibile come {5,2} viene segnalato come problema, e il resto dell'espressione viene spiegato lo stesso. Ricevere solo un messaggio di errore non aiuta quando il motivo per cui sei venuto è che l'espressione è rotta.

È la stessa cosa che testare una regex?

No. Questo legge l'espressione e ti dice che cosa dice; un tester la esegue su un testo e ti mostra che cosa ha trovato. Rispondono a domande diverse e spesso sono utili insieme — il nostro tester di regex è a un clic.

Perché ab+ non ripete tutto quanto?

Perché un quantificatore si applica al solo elemento immediatamente precedente, quindi ab+ è una a seguita da una o più b. Per ripetere entrambi serve un gruppo: (ab)+. È la lettura sbagliata più comune di una regex, ed è per questo che lo schema mostra sempre il quantificatore attaccato esattamente al pezzo che governa.

Che differenza c'è fra un gruppo di cattura e (?:...)?

Un gruppo di cattura conserva ciò che ha trovato così puoi farvi riferimento dopo, per numero o per nome. (?:...) raggruppa caratteri per struttura — perché un quantificatore o un'alternanza possa applicarsi a tutti — senza conservare il risultato. Usare un gruppo non catturante dove non ti serve il valore tiene ordinata la numerazione degli altri.

Aiutaci a migliorare questo strumento

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

/regex-explainer

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