Pular para o conteúdo
Case Converter Online
pt

Testador de regex (expressões regulares)

Digite uma expressão regular e um texto de teste para ver cada ocorrência destacada enquanto digita. Confira os grupos de captura e veja uma prévia de localizar e substituir antes de usar no código.

Flags

Ocorrências

0

Digite um padrão para ver as ocorrências.

Detalhes e grupos

Use $1 ou $<nome> para os grupos e $& para a ocorrência inteira.

O que faz um testador de regex

Uma expressão regular, ou regex, é uma pequena linguagem de padrões para encontrar texto. \d{4} significa “quatro dígitos seguidos”. [\w.+-]+@ significa “um ou mais caracteres de palavra, pontos, sinais de mais ou hifens, seguidos de um @”. As regex são usadas em localizar e substituir nos editores de código, na validação de formulários, na análise de logs e na limpeza de dados.

É fácil errar um padrão por pouco. Um testador permite experimentar um padrão em um texto de exemplo real e ver exatamente o que ele pega antes de colocá-lo em um script. Este mostra as ocorrências enquanto você digita, lista todos os grupos de captura e mostra uma prévia da substituição.

Como usar o testador de regex

  1. Digite o seu padrão em Expressão regular. Não coloque as barras. A ferramenta as mostra para você, com as flags ativas depois da barra de fechamento.
  2. Ligue ou desligue as flags com os botões g, i, m, s, u e y.
  3. Cole ou digite um texto de exemplo em Texto de teste.
  4. Leia o resultado em Ocorrências. Cada ocorrência fica destacada e o contador mostra quantas foram encontradas.
  5. Confira Detalhes e grupos para ver a posição de cada ocorrência e o texto capturado por cada grupo.
  6. Para testar um localizar e substituir, digite em Substituir por. O texto alterado aparece em Resultado, pronto para copiar.

Não sabe por onde começar? Escolha um item em Padrões comuns. Há padrões para endereços de e-mail, endereços web, datas, endereços IPv4, cores em hexadecimal, telefones, números e espaços duplos.

As flags

Flag Nome O que muda
g global Encontra todas as ocorrências, e não só a primeira
i ignorar maiúsculas hello também encontra Hello e HELLO
m multilinha ^ e $ valem no começo e no fim de cada linha
s dot all O . também pega uma quebra de linha
u unicode Lê um emoji como um caractere e permite as classes \p{...}
y sticky Cada ocorrência precisa começar exatamente onde terminou a anterior

Exemplos

Estes resultados saem dos padrões rodando nesta ferramenta.

Padrão Flags Texto Ocorrências
\d+ nenhuma a1 b22 c333 1
\d+ g a1 b22 c333 1, 22, 333
hello gi Hello hello HELLO Hello, hello, HELLO
^\w+ gm duas linhas: one two e three four one, three
a.b g a, quebra de linha, b nenhuma ocorrência
a.b gs a, quebra de linha, b uma ocorrência
\w+ g ação coração a, o, cora, o
\p{L}+ gu ação coração ação, coração

A página abre com um exemplo de datas. O padrão (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) encontra três datas no texto de exemplo: 2026-10-31, 2024-01-15 e 2026-11-02. A substituição $<day>/$<month>/$<year> transforma a primeira em 31/10/2026, que é o formato de data usado no Brasil.

Uma substituição também ajuda na limpeza. O padrão \s{2,} com um único espaço como substituição transforma too many spaces em too many spaces.

Atenção aos acentos

As duas últimas linhas da tabela mostram um tropeço comum com textos em português. No JavaScript, \w só reconhece as letras de A a Z sem acento, os dígitos e o sublinhado, mesmo com a flag u. Por isso \w+ corta “ação” em “a” e “o”. O mesmo vale para \b, o limite de palavra, que trata o “ç” e o “ã” como se não fossem letras. Para pegar palavras com acento, ligue a flag u e use \p{L} (qualquer letra) no lugar de \w, ou liste as letras à mão, como em [A-Za-zÀ-ÿ]. Outras linguagens se comportam de outro jeito: no Python 3, por exemplo, \w já reconhece letras acentuadas.

Como funciona

O testador monta um RegExp do JavaScript com o seu padrão e as flags, e o executa sobre o texto de teste. Com a flag g, ele continua procurando até o fim. Ele também avança depois das ocorrências vazias, para que um padrão como x* não fique em um laço infinito.

O texto é escapado antes de ser destacado. Qualquer HTML ou script no seu texto de exemplo aparece como caracteres simples e nunca é executado.

A busca acontece em um Web Worker, uma thread em segundo plano. Se um padrão rodar por mais de 1 segundo, o worker é interrompido e um novo é iniciado. Você vê uma mensagem em vez de uma aba travada.

Se um padrão for inválido, você vê “Padrão inválido:” seguido da mensagem de erro do navegador, que normalmente vem em inglês. Por exemplo, um ( sozinho dá “Unterminated group”.

Dicas e limites

  • Cuidado com repetições aninhadas. Padrões como (a+)+$ ou (\w+\s?)*$ podem demorar uma enormidade em um texto que quase bate. Isso se chama backtracking catastrófico. Faça cada parte pegar algo específico e evite uma repetição dentro de outra.
  • Escape os caracteres especiais. Para pegar um ponto de verdade, escreva \.. O mesmo vale para ? * + ( ) [ ] { } ^ $ | e para a própria barra invertida.
  • Ancore os padrões de validação. Em um campo de formulário, envolva o padrão com ^ e $, para que o valor inteiro precise bater, e não só uma parte dele.
  • Regex não é um parser completo. Ela serve bem para encontrar e-mails ou datas em um texto. Não é um jeito confiável de analisar HTML ou de conferir se um endereço de e-mail existe de verdade.
  • Resultados muito grandes têm limite. A ferramenta lista até 5.000 ocorrências e mostra as 300 primeiras linhas na tabela de detalhes.

Outras formas de testar uma regex

Na linha de comando, grep -oE mostra cada ocorrência em uma linha:

echo 'Call 555-010-9999 on 2026-10-31' | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}'

Isso mostra 2026-10-31. Em Python, re.findall(r'\d{4}-\d{2}-\d{2}', 'from 2026-10-31 to 2024-01-15') devolve ['2026-10-31', '2024-01-15']. Em JavaScript, use text.match(/pattern/g) ou text.matchAll() para os grupos.

Ferramentas relacionadas

Para transformar títulos em endereços da web limpos, use o gerador de slug. Para deixar um texto seguro dentro de um link, use a ferramenta de codificar e decodificar URL.

Testador de regex: perguntas e respostas

Qual variante de regex este testador usa?

Ele usa o motor de JavaScript embutido no seu navegador, então os resultados batem com o que você recebe do RegExp no JavaScript e no Node.js. A maioria dos padrões simples se comporta igual em Python, PHP e Java, mas recursos como lookbehind, grupos nomeados e classes Unicode podem variar um pouco entre as linguagens.

Por que só aparece uma ocorrência?

A flag g está desligada. Sem ela, uma regex em JavaScript para depois da primeira ocorrência. Clique no botão g para encontrar todas as ocorrências no texto de teste.

O que significa quando o testador diz que parou depois de 1 segundo?

O seu padrão demorou demais no texto, o que normalmente indica backtracking catastrófico. Repetições aninhadas como (a+)+ ou (.*)* podem obrigar o motor a testar um número enorme de caminhos. O testador roda a busca em um worker em segundo plano e o interrompe, para que a página não trave. Deixe as repetições mais específicas e tente de novo.

Como usar um grupo de captura na substituição?

Escreva $1, $2 e assim por diante para os grupos numerados, $<nome> para um grupo nomeado e $& para a ocorrência inteira. Por exemplo, o padrão (\w+)@(\w+) com a substituição $2 at $1 transforma a@b c@d em b at a d at c.

Meu texto de teste é enviado para algum lugar?

Não. A busca roda no seu navegador. Nada do que você digita é enviado ou salvo.

Mais ferramentas de código e dados

Ver todas as ferramentas