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)
Um explicador regex pega uma expressão regular e a traduz em inglês simples, uma construção por vez. Em vez de apertar os olhos em uma linha densa como ^(?<user>[a-z0-9._%-]+)@... Você obtém uma divisão rotulada: esta parte é uma âncora, é um grupo de captura nomeado, essa classe de personagem significa "uma letra minúscula, um dígito, um ponto ou um hífen", e esse quantificador significa "uma ou mais vezes". Ele transforma uma parede de símbolos em uma lista de verificação que você pode ler.
As expressões regulares são compactas por design, o que as torna poderosas, mas difíceis de revisar. O mesmo padrão pode ser escrito de várias maneiras, e uma única barra invertida ou um quantificador ganancioso muda completamente o significado. Ler um regex desconhecido - em uma revisão de código, um arquivo de configuração antigo ou uma resposta de estouro de pilha - geralmente significa simular mentalmente o mecanismo. Essa ferramenta faz essa simulação para você e mostra o resultado como uma lista ordenada e recuada que espelha a estrutura do padrão, incluindo grupos aninhados e lookarounds.
Tudo roda o cliente no mesmo mecanismo regexp JavaScript que seu código usa, portanto, o comportamento e a validade do sinalizador que você vê aqui correspondem à produção. Seu padrão nunca é carregado, nada é registrado e a ferramenta continua funcionando offline depois que a página é carregada. Isso importa quando o Regex que você está tentando entender vem de uma base de código privada ou corresponde a formatos de dados confidenciais.
O explicador informa o que um padrão diz, não se é o padrão certo para seus dados - para verificar isso, execute-o na entrada real no testador regex. Como ele compila com o mecanismo do navegador, as construções que existem no PCRE, mas não no ECMAScript, se comportam de duas maneiras diferentes. Quantificadores possessivos, como A++, grupos atômicos (?>...) e recursão (?r) são rejeitados completamente, com a mensagem do motor. O caso mais sutil é \a e \z: sem o sinalizador U, o JavaScript os trata como escapa da identidade, então um padrão copiado do PHP ou Python é explicado como correspondendo a um literal A ou Z em vez de um limite de string, e nenhum erro é gerado. Quantificadores aninhados como (A+)+ também são descritos normalmente; retrocesso catastrófico é uma propriedade de tempo de execução da entrada, não algo visível na estrutura.
Insira o padrão sem as barras ao redor - apenas a expressão em si. Clique em Carregar amostra para começar a partir de um exemplo de correspondência de e-mail trabalhado.
Alterne as bandeiras que o padrão usa (G, I, M, S, U, Y, D). O explicador relata o que cada sinalizador faz e valida o padrão em relação a essa combinação de sinalizador.
Cada token é listado em ordem com uma descrição em inglês. Os grupos aninhados são recuados para que a estrutura do padrão seja visível rapidamente.
Copie o detalhamento completo do texto simples para colar em um comentário de código, uma nota de solicitação ou documentação para que o próximo leitor não precise decodificá-lo.
Cada âncora, classe de personagem, quantificador, grupo e escape obtém sua própria linha com uma descrição, na ordem em que o mecanismo os lê
Capturar, não capturar, grupos nomeados e todos os quatro tipos de lookaround são rotulados e recuados, de modo que a estrutura aninhada é fácil de seguir
Os sinalizadores G, I, M, S, U, Y e D são descritos no contexto, então você entende como eles mudam toda a correspondência, não apenas a sintaxe
Os padrões são validados com o mecanismo regexp nativo do navegador, portanto, uma expressão inválida é detectada com o erro exato antes de você confiar nele
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!