Testador de Regex

/ /

Digite uma expressão regular, cole o texto para testá-la e o testador executa o padrão e lista cada correspondência encontrada. Cada resultado mostra onde a correspondência começa e o conteúdo de cada grupo de captura, para você ver exatamente o que o padrão capturou. Ative os flags de maiúsculas/minúsculas, multilinha e dotall para mudar o comportamento do padrão.

Como testar uma regex

  1. 1

    Insira seu padrão

    Digite a expressão sem delimitadores; o testador a envolve em `/ /` para você. Um padrão inválido mostra uma mensagem de erro clara em vez de falhar em silêncio.

  2. 2

    Escolha os flags

    Ative `i` (ignora maiúsculas/minúsculas), `m` (multilinha) ou `s` (dotall) para reconhecer como você precisa.

  3. 3

    Cole o texto de teste

    Adicione o texto a pesquisar. O testador percorre tudo e encontra cada correspondência, não só a primeira.

  4. 4

    Inspecione as correspondências

    Cada correspondência mostra sua posição (offset) no texto, a correspondência completa e cada grupo de captura numerado.

O que o testador mostra

Rodar um padrão de cabeça, ou com um grep rápido, diz se algo corresponde. O testador também mostra:

  • Cada correspondência, com sua posição. Ele sempre pesquisa todo o texto e informa cada correspondência com o offset do caractere onde ela começa.
  • Qual grupo capturou o quê. Cada correspondência é decomposta na correspondência completa e nos grupos de captura numerados, para você confirmar que um (...) pegou a parte esperada.
  • O que os flags mudam. Ative i, m ou s e teste de novo para ver como a correspondência sem distinção de maiúsculas, multilinha ou dotall muda o resultado.

Os flags, em poucas palavras

Flag Nome O que muda
i Ignora maiúsculas/minúsculas A também corresponde a a, e vice-versa
m Multilinha ^ e $ correspondem ao início e ao fim de cada linha, não só do texto inteiro
s Dotall . também corresponde a quebras de linha

A correspondência é sempre global: o testador retorna cada correspondência do texto, então não há um flag “global” separado para ativar. Os padrões rodam no motor PCRE com suporte a Unicode, então classes como \w e \d se comportam de forma consistente em texto internacional.

Problemas comuns de regex que isso ajuda a detectar

Sintoma Causa habitual
Uma única correspondência gigante que cobre tudo .* é guloso; use .*? ou uma classe negada como [^"]*
^ ou $ correspondem só uma vez Falta o flag m num texto de várias linhas
. para nas quebras de linha Falta o flag s
Grupos de captura em ordem inesperada ( aninhados deslocam os números dos grupos; conte-os da esquerda para a direita
Um padrão que roda devagar * ou + aninhados sobre alternativas sobrepostas causam muito backtracking

Dicas para padrões mais rápidos e seguros

  • Ancore com ^ quando a correspondência começa no início, para o motor não percorrer a string inteira.
  • Prefira uma classe de caracteres ([abc]) à alternância (a|b|c); as classes são mais rápidas em todos os motores importantes.
  • Substitua um .* guloso por uma classe negada como [^"]* quando você conhece o terminador, para não haver backtracking.

Perguntas frequentes

Ele executa seu padrão com PCRE, o motor integrado ao PHP, com o modo Unicode ativado. A sintaxe específica do PCRE, como \d, \b e os lookarounds, funciona como esperado. Se você for usar o padrão em JavaScript, Python ou outra linguagem, confira as pequenas diferenças de sintaxe antes de publicar.

Todas. O testador sempre pesquisa todo o texto, então não há um flag “global” separado para ativar. Cada correspondência é listada com sua posição no texto.

Sim. Cada correspondência é decomposta na correspondência completa e em cada grupo de captura numerado, para você confirmar qual parte do texto cada (...) capturou.

i torna a correspondência independente de maiúsculas e minúsculas, m faz ^ e $ corresponderem em cada limite de linha, e s deixa . corresponder a quebras de linha. Ative-os ou desative-os e teste de novo para comparar os resultados.

O testador mostra uma mensagem de erro clara descrevendo o problema, como um colchete não fechado ou um grupo não terminado, em vez de retornar zero correspondências sem avisar.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas