Ir para o conteúdo
AZ Tools

Testador de Regex

Escreva uma expressão regular, alterne as flags e veja cada correspondência destacada na sua cadeia de teste enquanto digita. Os grupos de captura são listados por correspondência e uma prévia da substituição roda ao lado, então você confirma ao mesmo tempo o que o padrão encontra e o que ele produziria. O motor é o próprio RegExp do JavaScript do navegador, o que significa que o que você vê aqui é exatamente o que seu código fará — inclusive nos pontos em que o JavaScript difere de PCRE, Python ou Go. Nada é enviado: padrões e dados de teste ficam na página, o que importa quando a amostra que você depura são dados reais.

Flags
Matches2 match(es)
Contact me at jane@example.com or john@test.io for details.
  • #1 @14jane@example.com
  • #2 @34john@test.io
Prévia da substituição
Contact me at [redacted] or [redacted] for details.

Como usar

  1. Insira um padrão regex (sem delimitadores).
  2. Alterne flags: g (global), i (ignora caso), m (multilinha), s (dotall), u (unicode).
  3. Digite ou cole uma string de teste — matches destacam ao vivo.
  4. Forneça uma string de substituição para prever o resultado.

Perguntas frequentes

Qual dialeto é usado?
Regex JavaScript (ECMAScript). Lookbehinds, grupos nomeados e escapes de propriedades Unicode funcionam em navegadores modernos.
Como referenciar grupos na substituição?
Use $1, $2, $& para o match completo ou $<nome> para grupos nomeados.
Há limite de matches?
Os primeiros 10.000 ciclos são capturados para manter a UI responsiva; a lista mostra os 50 primeiros.
Meus dados são enviados?
Não. Padrões e strings rodam apenas no seu navegador e o salvamento automático fica no seu armazenamento local.
Por que meu padrão trava a página?
Quase certamente retrocesso catastrófico. Padrões que aninham quantificadores — algo como (a+)+b — podem forçar o motor a percorrer um número exponencial de maneiras de dividir a entrada antes de admitir que não há correspondência. A correção é tornar as partes internas inequívocas, normalmente trocando um .* guloso por uma classe de caracteres negada que não possa se sobrepor ao delimitador.
O que a flag global muda de fato?
Sem g, a busca para no primeiro resultado. Com g, ela continua por toda a cadeia, que é o que faz a lista de correspondências ter mais de uma. Também torna a expressão com estado no código real, porque ela lembra onde parou. Esse é o motivo habitual de um padrão reutilizado em um laço parecer pular correspondências alternadas.
Como faço para casar em várias linhas?
Duas flags diferentes estão envolvidas e são fáceis de confundir. Multilinha muda o que as âncoras significam, de modo que ^ e $ casam em cada quebra de linha e não só nas extremidades da cadeia. Ponto-tudo muda o que o ponto casa, deixando-o cobrir também as quebras de linha. Se um padrão para no fim da primeira linha, normalmente era ponto-tudo que você queria.

Guias sobre este tema

Ferramentas relacionadas