Conversor Gratuito

Testador de Expressão Regular

Teste e depure expressões regulares instantaneamente no navegador. Destaque correspondências, veja grupos de captura, use o modo substituir — grátis e privado.

//g
Sinalizadores:

Sobre esta ferramenta

Expressões regulares são uma linguagem específica de domínio para combinar padrões em texto. Eles fazem parte da computação desde 1968 e agora estão integrados em todas as linguagens de programação modernas, editores de texto e ferramentas de pesquisa de linha de comando. A sintaxe é concisa, mas propensa a erros: pequenas alterações produzem um comportamento de correspondência sutilmente diferente e expressões complexas tornam-se ilegíveis rapidamente. Um testador que mostra correspondências em tempo real enquanto você edita o padrão é a maneira mais eficaz de desenvolver e verificar regex.

Este testador é executado em seu navegador usando o mecanismo JavaScript regex (o mesmo que seu aplicativo usa se for executado em um navegador). Os padrões e o texto de teste são atualizados de forma reativa: cada alteração em qualquer um deles executa novamente a correspondência. Os grupos de correspondência são destacados, os grupos capturados são listados e os sinalizadores (sem distinção entre maiúsculas e minúsculas, multilinhas, globais) são expostos para teste.

A sintaxe Regex varia sutilmente entre os mecanismos. JavaScript segue as especificações ECMAScript; Python, PCRE (usado por PHP e muitos outros), Java e Go têm seus próprios dialetos com recursos sobrepostos, mas não idênticos. Os padrões desenvolvidos aqui usam a sintaxe ECMAScript; a portabilidade entre mecanismos requer a verificação da documentação de cada destino.

Por que usar um testador Regex

Bugs Regex são notoriamente difíceis de depurar após a implantação. Um padrão que parece razoável pode corresponder mais ou menos do que o pretendido, falhar em casos extremos ou ter retrocesso catastrófico em determinadas entradas. Testar padrões interativamente em relação a entradas representativas detecta problemas antes da revisão e produção do código.

Os padrões também se beneficiam da documentação. Mostrar uma regex ao lado da entrada que deve corresponder e da entrada que não deve corresponder torna a intenção explícita. Os futuros mantenedores (incluindo você daqui a seis meses) apreciam mais os casos de teste documentados do que as frases simples e inteligentes.

Como usar

Digite um padrão, digite a entrada de teste e veja as correspondências destacadas ao vivo.

  1. Insira seu padrão: Digite o padrão regex no campo padrão. Ambos os formulários regex literal (/pattern/flags) e somente padrão funcionam; sinalizadores podem ser definidos por meio da entrada de sinalizadores.
  2. Adicionar entrada de teste: Cole o texto de amostra que o padrão deve corresponder (e, de preferência, também o texto que não deve corresponder). O testador executa o padrão na entrada e destaca as correspondências.
  3. Definir sinalizadores: Sinalizadores comuns: g (global, encontrar todas as correspondências), i (não diferencia maiúsculas de minúsculas), m (multilinha, ^ e $ início/fim da linha de correspondência), s (dotall, . corresponde a novas linhas), u (Unicode).
  4. Inspecione os resultados: Cada correspondência é destacada na entrada. Os grupos de captura aparecem em uma lista com índice e valor do grupo. O testador também mostra a contagem de correspondências e quaisquer erros de compilação no padrão.

Casos de uso comuns

Detalhes técnicos

A regex JavaScript segue a especificação ECMAScript. Principais recursos: classes de caracteres ([abc], [^abc]), quantificadores (*, +, ?, {n,m}), alternância (|), agrupamento ((...)), grupos de captura e não captura, lookahead e lookbehind (mecanismos modernos), referências anteriores, grupos nomeados, escapes de propriedade Unicode (com sinalizador u) e o conjunto padrão de sequências de escape.

Diferenças importantes do PCRE e Python: o suporte lookbehind é recente em JavaScript (2018+); grupos nomeados usam sintaxe (?<nome>...); alguns escapes Unicode exigem que o sinalizador u funcione corretamente. Os padrões destinados ao uso em vários idiomas devem ser verificados na documentação de cada destino.

Desempenho: mecanismos regex baseados em retrocesso (a maioria incluindo JavaScript) podem ter retrocesso catastrófico em certos padrões patológicos. Testes que travam o testador são um sinal de que o padrão precisa de simplificação – normalmente evitando quantificadores aninhados e alternâncias ambíguas.

Melhores Práticas

Perguntas frequentes

Qual tipo de regex esta ferramenta suporta?
Ele usa o mecanismo RegExp integrado do JavaScript, que suporta sintaxe padrão, incluindo lookaheads, lookbehinds (em navegadores modernos), grupos de captura nomeados e escapes de propriedades Unicode.
Posso testar substituições de regex?
Sim. Mude para o modo Substituir para inserir um padrão de substituição. Você pode usar $1, $2, etc. para referências anteriores de grupos de captura e $<nome> para grupos nomeados.
Por que meu regex corresponde de maneira diferente aqui do que em Python/PHP?
Diferentes linguagens de programação possuem mecanismos regex ligeiramente diferentes. JavaScript não oferece suporte a quantificadores possessivos ou alguns recursos específicos do PCRE. A sintaxe central (classes de caracteres, quantificadores, grupos) é a mesma em todos os idiomas.
A ferramenta salva meus padrões de regex?
Não. Nada é salvo ou transmitido. A ferramenta funciona inteiramente no seu navegador. Você pode marcar ou compartilhar padrões copiando a string regex.
Como faço para combinar um caractere especial literal?
Escape com uma barra invertida. Para corresponder a um ponto literal: \. Para corresponder a uma barra invertida literal: \\. Dentro das classes de personagens [...], a maioria dos caracteres especiais perde o significado.
O testador está sendo executado em um servidor?
A compilação e a correspondência de padrões acontecem no seu navegador usando o objeto RegExp nativo.
Posso testar padrões para mecanismos não JavaScript?
Majoritariamente. Para padrões simples, os principais motores concordam. Para recursos avançados (lookbehind, grupos atômicos, quantificadores possessivos, escapes de propriedades Unicode), confirme na documentação do mecanismo de destino.
Ele lida com entradas muito grandes?
Até alguns megabytes funcionam perfeitamente. Entradas maiores podem tornar o navegador lento ou travar, especialmente com padrões propensos a retroceder.