Spiegazione di un’espressione regolare
Regex Explainer
Scompone un’espressione regolare in un albero con le etichette, così puoi leggere che cosa cattura davvero ogni pezzo.
Scompone un’espressione regolare in un albero e dice che cosa fa ogni pezzo — ogni gruppo, quantificatore, classe e asserzione, annidati come lo è il pattern. È la stessa schermata del tester, aperta sulla sua scheda di spiegazione, perché leggere un pattern ed eseguirlo sono la stessa attività.
Pattern
può corrispondere ovunque nella stringa, 2 gruppi di cattura.
Che cosa fa ogni pezzo
([\w.+-]+)@([\w-]+\.[\w.-]+)In ordine
Ognuno di questi deve corrispondere, uno dopo l’altro, senza nulla in mezzo.
([\w.+-]+)Gruppo di cattura 1
Corrisponde al pattern al suo interno e ricorda il testo, disponibile come `match[1]` e come `$1` in una sostituzione.
[\w.+-]+Ripetuto +
Ripete una o più volte, il più possibile, e cede solo quando il resto fallisce.
[\w.+-]Un carattere qualsiasi di questo insieme
Corrisponde esattamente a un carattere, quello fra i seguenti che nell’input viene per primo.
Dentro una classe, `.` è un punto fermo. Qui non vuol dire «qualsiasi carattere», e proteggerlo non cambia nulla.
\wUn carattere di parola qualsiasi
Esattamente `[A-Za-z0-9_]`.
Questo è solo ASCII. Per un’espressione regolare JavaScript `é`, `한` e `ß` non sono caratteri di parola, quindi `\w+` non corrisponde a una parola coreana né a una accentata.
.Il carattere “.” (U+002E)
Viene confrontato esattamente, maiuscole e minuscole comprese.
+Il carattere “+” (U+002B)
Viene confrontato esattamente, maiuscole e minuscole comprese.
-Il carattere “-” (U+002D)
Viene confrontato esattamente, maiuscole e minuscole comprese.
@Il carattere “@” (U+0040)
Viene confrontato esattamente, maiuscole e minuscole comprese.
([\w-]+\.[\w.-]+)Gruppo di cattura 2
Corrisponde al pattern al suo interno e ricorda il testo, disponibile come `match[2]` e come `$2` in una sostituzione.
[\w-]+\.[\w.-]+In ordine
Ognuno di questi deve corrispondere, uno dopo l’altro, senza nulla in mezzo.
[\w-]+Ripetuto +
Ripete una o più volte, il più possibile, e cede solo quando il resto fallisce.
[\w-]Un carattere qualsiasi di questo insieme
Corrisponde esattamente a un carattere, quello fra i seguenti che nell’input viene per primo.
\wUn carattere di parola qualsiasi
Esattamente `[A-Za-z0-9_]`.
Questo è solo ASCII. Per un’espressione regolare JavaScript `é`, `한` e `ß` non sono caratteri di parola, quindi `\w+` non corrisponde a una parola coreana né a una accentata.
-Il carattere “-” (U+002D)
Viene confrontato esattamente, maiuscole e minuscole comprese.
\.Il carattere “.” (U+002E)
Viene confrontato esattamente, maiuscole e minuscole comprese.
Qui la barra rovesciata è di troppo: in questa posizione il carattere non ha alcun significato speciale.
[\w.-]+Ripetuto +
Ripete una o più volte, il più possibile, e cede solo quando il resto fallisce.
[\w.-]Un carattere qualsiasi di questo insieme
Corrisponde esattamente a un carattere, quello fra i seguenti che nell’input viene per primo.
Dentro una classe, `.` è un punto fermo. Qui non vuol dire «qualsiasi carattere», e proteggerlo non cambia nulla.
\wUn carattere di parola qualsiasi
Esattamente `[A-Za-z0-9_]`.
Questo è solo ASCII. Per un’espressione regolare JavaScript `é`, `한` e `ß` non sono caratteri di parola, quindi `\w+` non corrisponde a una parola coreana né a una accentata.
.Il carattere “.” (U+002E)
Viene confrontato esattamente, maiuscole e minuscole comprese.
-Il carattere “-” (U+002D)
Viene confrontato esattamente, maiuscole e minuscole comprese.
Flag
- g —
global - Trova tutte le corrispondenze invece di fermarsi alla prima. In cambio `.test()` ed `.exec()` spostano `lastIndex` tra una chiamata e l’altra, che è la causa abituale del «una chiamata sì e una no».
Come si usa
Incollare il pattern che si è ereditato
Quello nel file di configurazione che nessuno ricorda di aver scritto. Viene analizzato, non riconosciuto per somiglianza, quindi la scomposizione segue la struttura vera.
Leggere l’albero dall’alto in basso
Ogni nodo mostra il frammento di origine, che cosa è e che cosa fa. Le note segnalano i punti che sorprendono più spesso — un quantificatore annidato, un gruppo che cattura senza averne bisogno.
Passare a Test per verificare la propria lettura
Il pattern viene trasferito. Capire una regex e confermare che faccia quello che si crede sono due passi diversi, e il secondo è quello che costa poco.
Domande frequenti
Che cosa vuol dire l’avviso su un quantificatore annidato?
Una forma come `(a+)+` dà al motore un numero esponenziale di modi di suddividere lo stesso testo, così un input che non corrisponde può richiedere più dell’età dell’universo. È la forma che sta dietro alla maggior parte dei denial of service da espressione regolare.
Perché mi dice che un gruppo cattura?
Perché un gruppo di cattura che non si usa occupa una posizione e sposta la numerazione di quelli che si usano. `(?:…)` raggruppa senza catturare, e così `$1` continua a puntare a quello che si intendeva.
Spiega anche i flag?
Sì, in un pannello a parte — ogni flag impostato, il suo nome e che cosa cambia. `m` e `s` in particolare vale la pena leggerli, perché i loro nomi suggeriscono il comportamento l’uno dell’altro.
Può ricevere da
Banco di prova per espressioni regolari
Regex Tester
Prova un’espressione regolare su un testo di esempio, evidenziando dal vivo le corrispondenze ed elencando i gruppi di cattura.
Formattatore e validatore JSON
JSON Formatter & Validator
Formatta, minifica e valida il JSON, indicando riga e colonna esatte di un errore di sintassi.
Formattatore e validatore YAML
YAML Formatter & Validator
Riporta il YAML a un’indentazione coerente, lo valida e segnala gli errori di tabulazione e di ancora che rompono i parser.
Formattatore e validatore TOML
TOML Formatter & Validator
Formatta e valida il TOML, uniformando l’ordine delle tabelle e lo stile delle tabelle in linea.
Dopo
Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.
Trova e sostituisci
Find & Replace
Sostituisce per stringa esatta, per parola intera o con un’espressione regolare, con i gruppi di cattura e l’anteprima di ogni occorrenza.
Banco di prova per espressioni regolari
Regex Tester
Prova un’espressione regolare su un testo di esempio, evidenziando dal vivo le corrispondenze ed elencando i gruppi di cattura.
Estrarre per schema
Pattern Extractor
Tira fuori da un blocco di testo tutti gli indirizzi e-mail, gli URL, i numeri, le date o le corrispondenze di un’espressione regolare tua, e li mette in elenco.
Codificatore e decodificatore Base64
Base64 Encoder & Decoder
Codifica e decodifica in Base64 e Base64URL testo o file, trattando correttamente l’UTF-8.
Da curl a codice
curl to Code
Converte un comando curl in fetch, axios, requests di Python, Go, PHP o PowerShell.
Hash di un testo
Text Hash
Calcola MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC-32 di una stringa, con uscita in maiuscolo o in Base64.