O que este Testador de Regex faz
Esta versão em português é um testador de regex online completo para quem trabalha com JavaScript. Cole o seu padrão, insira o texto e veja cada correspondência destacada diretamente no input — sem recarregar a página, sem enviar dados para nenhum servidor. O teste de expressões regulares costuma consumir tempo valioso: você ajusta o padrão, roda o código, confere o log e repete. Aqui o ciclo é instantâneo. Todos os grupos de captura — numerados e nomeados — são listados com seus valores e posições. As flags g, i, m, s, u e y são ativadas com um clique. Um guarda de segurança interno impede que correspondências de largura zero (como ^ e $ em loops) travem o navegador. 100% no navegador — seus dados nunca saem do seu computador. Sem uploads, sem rastreamento, sem logs em servidor.
Recursos
- Destaque em tempo real. Cada correspondência é marcada diretamente no texto enquanto você digita o padrão, sem precisar clicar em nenhum botão.
- Inspeção de grupos de captura. Grupos numerados e nomeados são exibidos com valor, índice de início e fim — ideal para depurar parsers e extrair campos de logs.
- Troca de flags com um clique. Ative ou desative
g,i,m,s,ueyindividualmente e veja o resultado mudar imediatamente, sem redigitar o padrão. - Mensagens de erro amigáveis. Padrões inválidos exibem a mensagem do motor JavaScript traduzida para facilitar a correção, sem stack traces crípticos.
- Proteção contra loop infinito. Correspondências de largura zero — como lookarounds e âncoras mal posicionadas — são detectadas e interrompidas antes de travar a aba.
- Privacidade total. Toda a lógica roda no motor V8 do seu próprio navegador. Nenhum padrão, nenhum texto de teste e nenhum resultado trafega pela rede — conforme recomendado pelo RFC 4122 para ferramentas que lidam com dados sensíveis.
Como usar o Testador de Regex
Três campos, resultado imediato. Nenhuma configuração necessária.
- Digite o padrão. Insira a expressão regular no campo de padrão — por exemplo,
(?P<ano>\d{4})-(?P<mes>\d{2})-(?P<dia>\d{2})para extrair datas no formato ISO 8601. - Escolha as flags. Clique nas flags desejadas. Use
gpara encontrar todas as ocorrências eipara ignorar maiúsculas e minúsculas — útil ao validar e-mails ou URLs. - Cole o texto de teste. Insira o texto no campo de entrada. As correspondências são destacadas imediatamente e os grupos de captura aparecem listados abaixo.
- Inspecione os grupos. Cada grupo numerado e nomeado mostra valor e posição. Se precisar limpar o texto antes de testar, o [removedor de duplicados](/pt/remove-duplicates/) pode ajudar a preparar amostras de log.
- Copie o padrão validado. Clique em 'Copiar' para levar o regex direto para o seu editor. O padrão testado aqui funciona sem alterações em qualquer ambiente JavaScript moderno.
Casos de uso comuns
- Validação de formulários antes de ir para produção. Teste o regex de e-mail, CPF ou telefone contra dezenas de exemplos reais antes de embutir no código. Evita regressões que só aparecem depois do deploy.
- Extração de campos em logs de servidor. Analise linhas de acesso do Nginx ou Apache com grupos nomeados — por exemplo,
(?<ip>[\d.]+)— e veja exatamente o que cada captura retorna sem rodar um script. - Depuração de regex em pipelines de dados. Equipes em Brasília e São Paulo que processam arquivos CSV ou JSON frequentemente precisam ajustar padrões de limpeza. O construtor online de regex elimina o ciclo editar-rodar-verificar.
- Comparação de comportamento de flags. Quer saber se adicionar
s(dotAll) muda o número de correspondências no seu padrão? Alterne a flag e compare o resultado instantaneamente — sem abrir o console do navegador. - Aprendizado e documentação de padrões. Professores e redatores técnicos usam o verificador de regex para ilustrar conceitos como quantificadores gananciosos (
.*) vs. preguiçosos (.*?). Se também precisar comparar duas versões de um texto, o [comparador de textos](/pt/text-diff/) complementa bem o fluxo.
Perguntas frequentes
Meus padrões e textos de teste são enviados para algum servidor?
Não. Todo o processamento ocorre no motor JavaScript do seu próprio navegador. Nenhum dado trafega pela rede — nem o padrão, nem o texto, nem os resultados. Isso vale também para expressões que contenham senhas, tokens ou dados pessoais.
Este testador funciona para Python ou Java?
O motor usado é o JavaScript nativo do navegador (ECMA-262), então a sintaxe é a mesma de qualquer ambiente Node.js ou browser moderno. Para Python (re) e Java (java.util.regex), alguns recursos diferem: Python suporta grupos nomeados com (?P<nome>...), Java com (?<nome>...) — a mesma sintaxe aceita aqui. Recursos exclusivos do PCRE, como padrões recursivos, não estão disponíveis em nenhum dos três.
Por que meu regex com `.*` captura mais do que o esperado?
O quantificador .* é ganancioso por padrão: ele consome o máximo de caracteres possível antes de recuar. Troque por .*? (preguiçoso) para capturar o mínimo necessário. O testador destaca exatamente o trecho capturado, o que facilita visualizar a diferença entre os dois modos.
O que acontece se meu padrão causar um loop infinito?
Expressões com correspondências de largura zero mal construídas — como (a*)* em certos textos — podem travar um motor de regex sem proteção. Este testador detecta a condição e interrompe a execução antes que o navegador congele, exibindo um aviso claro. O problema ficou conhecido após incidentes em sistemas legados, como o bug Y2K38 em timestamps de 32 bits, que revelou a importância de guardar limites em loops de processamento.
Posso usar grupos nomeados e como eles aparecem?
Sim. Use a sintaxe (?<nome>padrão) para criar um grupo nomeado. O testador lista cada grupo — numerado e nomeado — com seu valor exato e as posições de início e fim no texto. Isso é especialmente útil ao montar parsers ou ao documentar expressões complexas para o time.
Qual é a diferença entre este testador e um regex editor tradicional?
Um editor de regex online genérico costuma suportar múltiplos flavors (PCRE, Python, .NET). Este foca em JavaScript puro, seguindo o padrão descrito na WHATWG Encoding Standard para comportamento de strings Unicode, o que garante que o resultado aqui seja idêntico ao do seu código JS em produção — sem surpresas de portabilidade.