Testador de Regex
Teste uma expressão regular em um texto de exemplo com destaque de correspondências em tempo real, explicação detalhada do padrão e modo de correspondência ou substituição.
Explicação do padrão
Correspondências
| # | Correspondência | Posição | Grupos |
|---|
Resultado da substituição
Como funciona
Esta ferramenta testa uma expressão regular em um texto de exemplo usando o mecanismo RegExp do JavaScript, com correspondências destacadas enquanto você digita, uma explicação detalhada do significado do padrão e grupos de captura nomeados ou numerados exibidos para cada correspondência.
- Digite um padrão e sinalizadores
Ou comece com um padrão rápido e ajuste-o.
- Cole seu texto de teste
As correspondências são destacadas em tempo real, com posição e grupos de captura listados.
- Mude para Substituir, se necessário
Veja o texto substituído antes de usá-lo no código.
Lendo a análise do padrão e a lista de correspondências
A análise do padrão lê a regex da esquerda para a direita e explica cada token em linguagem simples: uma classe de caracteres, uma âncora, um quantificador, um grupo. É um guia para entender um padrão, não um analisador completo, então uma construção incomum ou malformada pode ser descrita de forma genérica.
- Sinalizadores: g encontra todas as correspondências em vez de parar na primeira; i ignora maiúsculas e minúsculas; m faz ^ e $ corresponderem ao início e ao fim de cada linha; s permite que um ponto corresponda a uma quebra de linha; u ativa o modo Unicode completo; y ancora a correspondência no último índice.
- Grupos de captura: parênteses capturam parte de uma correspondência para reutilização. Um grupo nomeado, (?<year>\d{4}), aparece na lista de correspondências tanto pelo nome quanto pelo número.
- Modo de substituição: $1, $2 referem-se a grupos numerados e $<name> a um grupo nomeado, a mesma sintaxe usada pelo String.replace do JavaScript.
Regex JavaScript, não PCRE
Esta ferramenta usa o mecanismo RegExp do JavaScript, que difere do PCRE, usado em PHP, no módulo re do Python e em muitos outros, em vários aspectos: o suporte a lookbehind varia conforme a versão do mecanismo, grupos nomeados usam a sintaxe (?<name>...) e o tratamento de Unicode difere sem o sinalizador u. Sempre teste na sua linguagem de destino antes de implantar um padrão em produção. Tudo aqui é executado no seu navegador; seu texto, que pode incluir linhas de log ou dados pessoais, nunca é enviado para nenhum lugar.
Perguntas frequentes
Como testar uma expressão regular em um texto de exemplo online?
Digite seu padrão entre os dois delimitadores de barra, defina as flags desejadas, g para global, i para ignorar maiúsculas e minúsculas, no campo de flags e digite ou cole sua string de teste. As correspondências são destacadas em tempo real enquanto você digita, e a lista de correspondências abaixo mostra cada resultado, seu índice e a posição dos caracteres.
Este testador de regex é seguro para uso com dados sensíveis?
Sim. O Testador de Regex funciona inteiramente no seu navegador usando o mecanismo RegExp do JavaScript. Nenhum dado é transmitido para qualquer servidor. Você pode testar padrões com segurança em linhas de log reais, dados pessoais ou dados internos sem que eles saiam da sua máquina.
Como usar o modo de substituição de regex para testar substituições?
Altere o seletor de modo de Correspondência para Substituição. Um campo de substituição aparece, onde você pode usar $1, $2 para grupos de captura numerados ou $<name> para um grupo nomeado, e a saída substituída é exibida em tempo real. Isso é útil para validar operações de localizar e substituir antes de aplicá-las no código ou em um editor.
O que são as predefinições de padrões rápidos e quando devo usá-las?
Os botões de predefinições, E-mail, URL, Endereço IP, Telefone, Cor hexadecimal, Data, carregam padrões de regex comuns com as flags apropriadas em um clique. Use-os como ponto de partida e modifique o padrão para corresponder ao seu formato específico. Não há garantia de que cubram todos os casos extremos; por exemplo, a predefinição de e-mail segue uma aproximação comum, não a especificação completa da RFC 5321.
Por que minha regex funciona em JavaScript, mas não em Python ou outras linguagens?
Esta ferramenta usa o mecanismo RegExp do JavaScript, que difere do PCRE, usado em PHP, no módulo re do Python e em muitos outros, de várias maneiras. O suporte a lookbehind varia conforme a versão do mecanismo, grupos nomeados usam sintaxes diferentes em algumas linguagens e o tratamento de Unicode também é diferente. Sempre teste na linguagem de destino antes de implantar um padrão em produção.