This pattern has 2 capturing groups with 2 flags (gi) and is broken down into 14 parts below.
Flags
gglobal - find all matches in the input, not just the first oneiignore case - letters match regardless of upper or lower case^Start-of-string anchor (or start of a line with the m flag)(?<user>Start of a named capturing group "user" - saves its match under that name[a-z0-9._%+-]A single character from the set: the range "a" to "z", the range "0" to "9", the character ".", the character "_", the character "%", the character "+", the character "-"+Repeated one or more times)End of the group@A literal "@" character(?<domain>Start of a named capturing group "domain" - saves its match under that name[a-z0-9.-]A single character from the set: the range "a" to "z", the range "0" to "9", the character ".", the character "-"+Repeated one or more times\.A literal "." character (the backslash removes its special meaning)[a-z]A single character from the set: the range "a" to "z"{2,}Repeated 2 or more times)End of the group$End-of-string anchor (or end of a line with the m flag)
Uno spiegatore regex prende un'espressione regolare e la traduce in un inglese semplice, un costrutto alla volta. invece di strizzare gli occhi su una linea densa come ^(?<user>[A-Z0-9._%+-]+)@... Ottieni una ripartizione etichettata: questa parte è un'ancora, questo è un gruppo di acquisizione denominato, questa classe di caratteri significa "una lettera minuscola, una cifra, un punto o un trattino" e questo quantificatore significa "una o più volte". Trasforma un muro di simboli in una lista di controllo che puoi leggere.
Le espressioni regolari sono compatte in base al design, il che le rende potenti ma difficili da rivedere. Lo stesso schema può essere scritto in molti modi e una singola barra rovesciata o un quantificatore avido cambia completamente il significato. Leggere una regex sconosciuta - in una revisione del codice, un vecchio file di configurazione o una risposta di overflow dello stack - di solito significa simulare mentalmente il motore. Questo strumento esegue quella simulazione per te e mostra il risultato come un elenco ordinato e rientrato che rispecchia la struttura del modello, inclusi i gruppi nidificati e le ricerca.
Tutto funziona sul lato client sullo stesso motore regExp JavaScript utilizzato dal tuo codice, quindi il comportamento e la validità del flag che vedi qui corrispondono alla produzione. Il tuo pattern non viene mai caricato, non viene registrato nulla e lo strumento continua a funzionare offline una volta caricata la pagina. Questo è importante quando la regex che stai cercando di capire proviene da una base di codice privata o corrisponde a formati di dati sensibili.
Lo spiegatore ti dice cosa dice un modello, non se è il modello giusto per i tuoi dati - per verificarlo, eseguilo con un input reale nel tester regex. Poiché si compila con il motore del browser, i costrutti che esistono in PCRE ma non in EcmaScript si comportano in due modi diversi. I quantificatori possessivi come A++, i gruppi atomici (?>...) e la ricorsione (?R) vengono rifiutati a titolo definitivo, con il messaggio del motore. Il caso più sottile è \a e \z: senza il flag u, JavaScript li tratta come escape di identità, quindi un modello copiato da PHP o Python viene spiegato come abbinando un limite A o Z letterale piuttosto che un limite di stringa e non viene sollevato alcun errore. Normalmente vengono descritti anche i quantificatori nidificati come (A+)+; il backtracking catastrofico è una proprietà di runtime dell'input, non qualcosa di visibile nella struttura.
Entra nel modello senza le barre circostanti - solo l'espressione stessa. Fare clic su Carica campione per iniziare da un esempio di corrispondenza e-mail lavorato.
Alterna le bandiere usate dal modello (G, I, M, S, U, Y, D). Lo spiegatore riporta cosa fa ogni flag e convalida il modello contro quella combinazione di flag.
Ogni token è elencato in ordine con una descrizione in inglese semplice. I gruppi nidificati sono rientrati in modo che la struttura del motivo sia visibile a colpo d'occhio.
Copia la ripartizione completa del testo normale per incollare in un commento in codice, una nota di richiesta pull o documentazione in modo che il lettore successivo non debba decodificarlo.
Ogni ancora, classe di caratteri, quantificatore, gruppo ed escape ottiene la propria linea con una descrizione, nell'ordine in cui il motore li legge
L'acquisizione, la non cattura, i gruppi denominati e tutti e quattro i tipi di lookaround sono etichettati e rientrati, quindi la struttura nidificata è facile da seguire
I flag G, I, M, S, U, Y e D sono descritti ciascuno nel contesto, quindi capisci come cambiano l'intera corrispondenza, non solo la sintassi
I modelli vengono convalidati con il motore RegExp nativo del browser, quindi un'espressione non valida viene rilevata con l'errore esatto prima di fare affidamento su di esso
Extract email addresses, URLs, phone numbers, and IPv4 addresses from any block of text. De-duplicate, sort, and copy the results. Runs client-side.
Find and replace text with a regular expression, using capture group backreferences like $1 and named groups, with full flag support
Test regular expressions against sample text with live match highlighting, capture groups, and full flag support
Build, test, and debug regular expressions with real-time matching and a comprehensive cheatsheet
0 comments
No comments yet. Be the first to share your thoughts!