Correspondências

O padrão [\w.+-]+@[\w-]+(?:\.[\w-]+)*\.[A-Za-z]{2,} aceita nome@example.com e support+billing@mail.example.co.uk, mas não john@ nem jane@localhost, porque exige um ponto e um final de 2 letras. Ele pega erros de digitação; só um e-mail de confirmação prova que o endereço existe.

Como usar

  1. Digite um padrão entre as barras ou cole um literal /padrão/flags completo. Toque em um padrão comum, como E-mail ou IPv4, para começar com um testado.
  2. Ative flags: g encontra todas as correspondências, i ignora maiúsculas, m aplica ^ e $ a cada linha, s faz o ponto incluir quebras de linha.
  3. Digite ou cole o texto de teste. As correspondências são destacadas enquanto você digita e listadas abaixo com posição e grupos.
  4. Vá para Substituir e use $1, $<nome> ou $& na substituição para ver o resultado ao vivo. Toque em qualquer correspondência, grupo ou resultado para copiar.
  • É o motor de regex JavaScript (ECMAScript) do seu navegador, o mesmo do Node.js, Chrome e Deno. Suporta lookbehind, grupos nomeados e classes Unicode \p{…}.
  • A busca roda em segundo plano e para após 1 segundo: um padrão com backtracking catastrófico mostra um erro em vez de travar a página.
  • Na substituição, \n e \t inserem uma quebra de linha ou uma tabulação. $$ insere um cifrão.
  • Ative a flag d para ver a posição inicial e final de cada grupo.
  • Links compartilhados incluem o padrão e as flags, nunca o seu texto de teste.

Flags que mudam o resultado

g encontra todas as correspondências em vez da primeira, i ignora maiúsculas, m faz ^ e $ valerem em cada quebra de linha, s deixa o ponto aceitar quebras de linha, u ativa Unicode completo e as classes \p{…}, y só procura em lastIndex e d devolve os índices de início e fim de cada grupo. Esquecer o g é o motivo mais comum de um padrão parecer achar só um resultado.

Como ler um padrão

\d é um dígito, \w uma letra, dígito ou sublinhado, \s um espaço em branco e \b um limite de palavra. Quantificadores repetem o item anterior: * é 0 ou mais, + é 1 ou mais, ? é 0 ou 1 e {2,4} é de 2 a 4 vezes. Um ? depois do quantificador o torna preguiçoso, então <.+?> para no primeiro >. Parênteses capturam um grupo; (?<ano>\d{4}) dá um nome e (?:…) agrupa sem capturar.

Lookaheads (?=…) e (?!…) e lookbehinds (?<=…) e (?<!…) verificam o que vem depois ou antes sem consumir. Por exemplo, \d+(?= USD) acha 120 em 120 USD, mas não em 120 EUR.

Evitando padrões lentos

Quantificadores aninhados como (a+)+ ou (.*)* podem fazer backtracking exponencial num texto que quase corresponde e travar um servidor: é o problema chamado ReDoS. Aqui a busca roda em segundo plano com limite de um segundo, então você vê um erro em vez de um travamento. Prefira classes específicas como [^,]* a .* e ancore com ^ e $ ao validar um valor inteiro.

Perguntas frequentes

Qual sabor de regex este testador usa?

JavaScript (ECMAScript), o motor do seu navegador. Ele bate com Node.js, Deno e TypeScript. A maior parte da sintaxe é igual à de PCRE, Python e Java, mas recursos como quantificadores possessivos ou grupos atômicos mudam.

Por que minha regex só acha uma correspondência?

Porque a flag g (global) está desligada. Sem g, o JavaScript para na primeira. Ative o g para destacar e listar todas.

Como uso grupos de captura na substituição?

Escreva $1, $2 e assim por diante para grupos numerados, $<nome> para grupos nomeados e $& para a correspondência inteira. $$ insere um cifrão literal.

Como procuro um ponto ou colchete literal?

Escape com uma barra invertida: \. acha um ponto, \( um parêntese e \[ um colchete. Dentro de uma classe de caracteres quase todo símbolo é literal, então [.] também acha um ponto.

Uma regex consegue validar e-mails perfeitamente?

Não. As regras completas das RFC 5321 e 5322 são amplas e complexas demais para um padrão prático. Use uma regex simples para pegar erros de digitação e confirme o endereço enviando um e-mail.

Meu texto de teste é enviado para algum lugar?

Não. A busca acontece no navegador. Links de compartilhamento levam só o padrão e as flags, nunca o texto testado.

Usado junto com

Como usar

Passos

  1. Digite um padrão entre as barras ou cole um literal /padrão/flags completo. Toque em um padrão comum, como E-mail ou IPv4, para começar com um testado.
  2. Ative flags: g encontra todas as correspondências, i ignora maiúsculas, m aplica ^ e $ a cada linha, s faz o ponto incluir quebras de linha.
  3. Digite ou cole o texto de teste. As correspondências são destacadas enquanto você digita e listadas abaixo com posição e grupos.
  4. Vá para Substituir e use $1, $<nome> ou $& na substituição para ver o resultado ao vivo. Toque em qualquer correspondência, grupo ou resultado para copiar.

Atalhos

EnterIr do padrão para o texto de testeCtrl + EnterCopiar todas as correspondências ou o resultado da substituição

Bom saber

Funciona no seu navegador. Arquivos e textos nunca saem do seu dispositivo.