Testador de Regex
Teste expressões regulares com destaque de correspondência ao vivo
Como funciona
Testador de Regex — Teste expressões regulares com destaque de correspondência ao vivo. Todo o processamento acontece no seu navegador — sem upload, sem cadastro, sem e-mail. Grátis para sempre.
Última atualização:
Sobre Testador de Regex
Regex é uma daquelas habilidades em que um loop de teste de trinta segundos economiza uma hora encarando a tela. Cole um padrão, cole uma string de exemplo, veja os matches destacados ao vivo enquanto você ajusta as flags ou conserta um colchete fora do lugar. Este testador de regex usa o engine RegExp do JavaScript — o mesmo que seu código vai rodar no navegador, no Node.js ou em qualquer runtime baseado em V8/JavaScriptCore — então o que você vê aqui é exatamente o que vai obter em produção.
Os toggles de flags cobrem tudo o que o ECMAScript suporta: g para global, i para case-insensitive, m para âncoras ^/$ multilinha, s para dotAll ("." combina com newlines), u para Unicode completo, e y para sticky matching. Cada match mostra o texto completo, o índice e quaisquer capture groups (numerados e nomeados) para você construir e verificar exatamente a forma de extração que seu código espera.
Os sabores de regex variam: PCRE no PHP, RE2 no Go e no Cloud Logging, o engine do .NET e o módulo re do Python diferem em sintaxe de lookbehind, quantificadores possessivos e escapes de propriedades Unicode. Este testador é especificamente do dialeto ECMAScript / JavaScript — se você está escrevendo padrões para um serviço Go ou uma query do BigQuery, confirme o dialeto antes de subir.
Como usar Testador de Regex
- Digite ou cole seu padrão regex no campo Padrão (sem precisar das barras envolventes).
- Ative as flags que precisar: g, i, m, s, u, y. Cada uma atualiza a lista de matches ao vivo imediatamente.
- Cole uma string de teste representativa em Texto de teste — entrada multilinha funciona normalmente.
- Leia o painel de Matches: cada entrada mostra o match completo mais quaisquer capture groups, numerados e nomeados.
- Ajuste o padrão até "Sem matches" desaparecer e os trechos destacados cobrirem o que você espera.
- Se aparecer "Regex inválida", procure por um grupo não fechado, uma classe de caractere sem escape ou um conflito de flags.
Casos de uso comuns
- Construir um padrão de validação de input para um campo de e-mail, slug ou telefone antes de colar na sua biblioteca de formulários.
- Extrair campos estruturados (timestamps, request ids, status codes) de linhas de log para um script de análise rápido.
- Refinar um padrão de search-and-replace no seu editor com referências a capture groups como $1, $2.
- Verificar que um find-and-replace destrutivo só vai atingir as linhas que você espera antes de rodar em um arquivo real.
- Ensinar a um colega por que ".*" é greedy e como quantificadores lazy (".*?") se comportam de forma diferente.
Dicas e erros comuns
- Sem a flag g, só o primeiro match é retornado — ative sempre que estiver extraindo todas as ocorrências.
- Se você precisa que "." combine com newlines, ative a flag s (dotAll) em vez de recorrer a "[\s\S]".
- Use named capture groups como "(?<year>\d{4})" para que quem chama possa referenciar match.groups.year em vez de índices numéricos frágeis.
- ECMAScript suporta lookbehind ("(?<=…)") em navegadores modernos, mas o Safari adotou tarde — verifique nos seus runtimes alvo se você precisa suportar dispositivos mais antigos.
Perguntas frequentes
Qual engine regex é suportado?
O engine RegExp nativo do JavaScript, o mesmo usado em navegadores e Node.js. As flags ECMAScript g, i, m, s, u, y são suportadas.
Posso ver grupos de captura?
Sim. Cada correspondência mostra os grupos capturados numerados $1, $2, …. Grupos nomeados aparecem na saída JSON de cada correspondência.
Por que '.*' casa demais?
Por padrão '.' não casa com quebras de linha. Ative a flag 's' (dotAll) se precisar que '.' case com todo caractere incluindo quebras.
Suporta funcionalidades PCRE como padrões recursivos ou quantificadores possessivos?
Não. Este é o engine RegExp do JavaScript, que é compatível com ECMAScript. Padrões recursivos, quantificadores possessivos ("++", "*+") e certos condicionais do PCRE não são suportados. Para isso, use uma ferramenta específica de PHP/Perl/PCRE.
Posso testar padrões destinados a Go (RE2) ou BigQuery?
Você pode prototipar a forma básica, mas o RE2 deliberadamente omite lookbehind e backreferences por performance e segurança. Sempre re-verifique no dialeto alvo — esta ferramenta é com sabor JS.
Por que meu padrão está combinando demais silenciosamente?
Quantificadores são greedy por padrão — ".*" come o máximo possível. Acrescente "?" para torná-los lazy (".*?") ou use uma classe de caractere mais específica como "[^/]*" em vez de ".".
Mais recentes do blog
- Expressões Cron do Zero: Um Guia VisualAprenda a sintaxe cron POSIX de 5 campos, caracteres especiais, valores de passo, extensões Quartz, diferenças do cron da AWS e uma dúzia de exemplos prontos que você pode copiar e colar em um crontab hoje.
- Regex para Não Desenvolvedores: Um Guia PráticoUm tutorial de regex amigável e leve em jargão, para escritores, analistas, profissionais de marketing e qualquer pessoa que vive no Localizar e Substituir. Aprenda a sintaxe que importa e leve dez receitas prontas para usar.
Ferramentas relacionadas
- Codificador/Decodificador URLCodifique e decodifique componentes URI e URLs completas
- Gerador de UUIDGere UUID v4 criptograficamente aleatórios em massa
- Decodificador JWTDecodifique e inspecione JSON Web Tokens (cabeçalho, payload, expiração)
- Construtor de expressões CronConstrua e explique expressões cron em linguagem simples
- Formatador SQLEmbeleze, minifique ou formate consultas SQL para qualquer dialeto
- Conversor YAML ↔ JSONConverta entre YAML e JSON em qualquer direção