Testador de Regex

Teste expressões regulares contra texto de amostra. Destaca correspondências, mostra grupos de captura e inclui presets comuns.

//g

Testador de Regex — Teste Expressões Regulares Online

Expressões regulares (regex) são padrões que descrevem conjuntos de textos, usados em tudo: validação de formulários, busca em logs e refatoração de texto em editores. Este testador compila seu padrão com o motor de regex do JavaScript, executa-o contra o texto de amostra enquanto você digita e destaca cada correspondência no próprio texto. Os grupos de captura são listados para cada correspondência, mostrando exatamente quais partes do texto seus parênteses extraíram.

Escrever regex é notoriamente um processo de tentativa e erro: um padrão que parece certo pode capturar demais, de menos ou nada. Testar com dados de amostra reais antes de levar o padrão para o código de produção evita essas surpresas. Presets comuns — e-mail, URL, telefone, data — oferecem um ponto de partida funcional que você pode adaptar em vez de começar do zero.

Como funciona

O padrão é compilado com o motor RegExp nativo do navegador (sabor ECMAScript) junto com as flags selecionadas: g (encontra todas as correspondências, não só a primeira), i (ignora maiúsculas/minúsculas), m (^ e $ casam em quebras de linha), s (o ponto casa com quebras de linha) e u (modo Unicode). A expressão compilada é executada contra o texto de amostra; a posição, o texto casado e os grupos de captura numerados ou nomeados de cada correspondência são lidos dos objetos de resultado e destacados.

Casos de uso

  • Construir e depurar um padrão de validação de e-mail, telefone ou CEP antes de adicioná-lo a um formulário
  • Testar um padrão de busca em linhas de log de amostra antes de rodá-lo nos logs de produção
  • Extrair dados com grupos de captura — datas, IDs, URLs — de textos semiestruturados
  • Entender o que uma regex herdada em um código legado realmente captura
  • Preparar padrões de localizar e substituir para editores e IDEs
  • Aprender a sintaxe de regex de forma interativa, vendo as correspondências mudarem enquanto digita

Perguntas frequentes

Qual sabor de regex este testador usa?

Ele usa o motor de regex do JavaScript (ECMAScript) embutido no navegador, o mesmo sabor do Node.js e do código front-end. A maior parte da sintaxe vale também para PCRE (PHP, e semelhante ao módulo re do Python), mas há diferenças: o suporte a lookbehind varia entre motores, e o JavaScript usa (?<nome>...) para grupos nomeados. Se o padrão for usado em outra linguagem, confirme os recursos específicos naquele ambiente também.

O que significam as flags g, i, m, s e u?

g (global) encontra todas as correspondências em vez de parar na primeira. i (ignore case) torna o padrão insensível a maiúsculas e minúsculas. m (multiline) faz ^ e $ casarem no início e no fim de cada linha, e não do texto inteiro. s (dotAll) permite que o ponto case com quebras de linha. u (unicode) ativa o tratamento completo de Unicode, incluindo escapes de propriedade \p{...} para casar categorias como letras ou dígitos em qualquer alfabeto.

Qual é a diferença entre quantificadores gulosos e preguiçosos?

Quantificadores gulosos (*, +, {n,}) casam o máximo de texto possível sem impedir o sucesso do padrão como um todo; os preguiçosos (*?, +?) casam o mínimo possível. O exemplo clássico é <.+> contra HTML: o modo guloso captura do primeiro < ao último >, engolindo tudo entre as tags, enquanto <.+?> para no primeiro fechamento. Quando um padrão captura mais do que o esperado, um quantificador guloso costuma ser o culpado.

O que são grupos de captura em uma expressão regular?

Parênteses no padrão criam grupos de captura, que armazenam o trecho exato casado por aquela parte da expressão. Os grupos são numerados da esquerda para a direita a partir de 1 (o grupo 0 é a correspondência inteira) e podem ser nomeados com a sintaxe (?<nome>...). É assim que se extraem dados estruturados — por exemplo, (\d{4})-(\d{2})-(\d{2}) captura ano, mês e dia de uma data ISO como três grupos separados.

Existe uma regex que valida qualquer endereço de e-mail?

Na prática, não. A gramática completa da RFC 5322 para e-mails é tão permissiva que uma regex completa fica enorme e ainda assim não confirma que a caixa postal existe. O caminho pragmático é um padrão simples — texto, um @, um domínio e um TLD separado por ponto — para pegar erros de digitação, com um e-mail de confirmação verificando a entrega. É assim que a maioria dos frameworks e navegadores trata a validação de e-mail.

Calculadoras Relacionadas