Como testar uma expressão regular?

Informe um padrão e um texto de exemplo e a ferramenta destaca todas as ocorrências, lista os grupos de captura e permite ligar e desligar opções como global, multilinha e ignorar maiúsculas. A busca roda no seu navegador com o próprio motor de expressões regulares do JavaScript, então os resultados são exatamente o que o seu código vai ver.

Roda inteiramente no seu navegador · sem envio · sem conta · sem marca d’água

  1. Digite um padrão e marque as opções que você quer.
  2. Cole um texto de exemplo para testar.
  3. Veja os destaques e depois a lista de ocorrências abaixo.
Opções

Destaques

Ocorrências

    O que esta página faz

    Quando usar esta página

    • Testar uma expressão regular de JavaScript em um texto de exemplo.
    • Ver quais grupos de captura e opções produzem quais ocorrências.
    • Conferir um padrão antes de colocá-lo no código do front-end.

    Quando escolher outra opção

    • O padrão é para Python, PCRE, .NET ou Java — a sintaxe e o comportamento de backtracking são diferentes do RegExp do JavaScript.
    • A entrada não é confiável e o padrão pode entrar em backtracking catastrófico; o teste roda na thread principal e pode travar a aba.
    • Você precisa de explicação passo a passo, de medição de desempenho ou de um limite de tempo.

    Como se compara a outras alternativas

    O regex101 e ferramentas parecidas permitem trocar de motor, explicam cada token e impõem um tempo limite. Esta página roda o próprio RegExp do navegador, sem nenhuma dessas proteções, então é fiel ao JavaScript mas herda as limitações dele: sem grupos atômicos, sem quantificadores possessivos e sem proteção contra um padrão patológico. Uma expressão deliberadamente ruim pode travar a aba até você fechá-la.

    Para onde vão seus arquivos

    Para lugar nenhum. Esta página carrega o código que faz o trabalho e, a partir daí, o arquivo que você abre é lido pelo seu próprio navegador. Não há etapa de envio, nem cópia temporária em servidor, nem limpeza em que você precise confiar — os dados nunca atravessam a rede, então não sobra nada para apagar depois. Você pode confirmar: abra o painel de rede do navegador enquanto a ferramenta roda e veja ele ficar quieto.

    Perguntas sobre esta ferramenta

    A página parou de responder quando usei o meu padrão. Por quê?
    Isso é backtracking catastrófico: um padrão como (a+)+b contra uma sequência longa de “a” faz o motor tentar um número exponencial de caminhos até falhar. Esta página limita o número de ocorrências para não entrar em espiral infinita, mas uma única ocorrência teimosa ainda pode demorar um pouco. Reescreva os quantificadores aninhados para o motor ter um único caminho — por exemplo a+b — ou ancore o padrão com ^ ou $.
    Quais opções posso ligar?
    g encontra todas as ocorrências em vez de só a primeira, i ignora maiúsculas e minúsculas, m faz ^ e $ casarem nas quebras de linha, s permite que . também case com quebras de linha, e u ativa o modo Unicode completo, necessário para escapes de propriedade \p{...} e para tratar corretamente caracteres fora do plano básico. Os resultados são exatamente os que o motor do JavaScript dá, então batem com o seu código.
    Por que a lista mostra só alguns milhares de ocorrências?
    A lista tem um limite para que um padrão que casa com todos os caracteres — por exemplo . com a opção global em um documento longo — não trave a aba enquanto monta milhares de linhas. O limite é alto o bastante para textos de teste realistas; se você chegar nele, restrinja o padrão ou encurte o exemplo.

    Outras ferramentas do mesmo grupo