Testador de Regex / Editor / Visualizador de Correspondências

Teste, visualize, substitua e explique expressões regulares. Tudo é processado no seu navegador

⚙ Motor: JavaScript RegExp
Padrão
Flags:
Inserir:
Exemplos:
Texto de teste 0 caracteres · 0 linhas
Correspondências destacadas
Correspondências: 0
Horário:
Motor: JS RegExp
Tabela de correspondências
# Correspondência Início Fim Comprimento Grupos
Grupos de captura
Sintaxe de substituição: $1 $2 grupos de captura · $& correspondência completa · $` antes da correspondência · $' depois da correspondência · $$ literal $ · $<name> grupo nomeado
Substituição
Texto fonte
Resultado
Insira um padrão regex acima para ver uma explicação legível.

Clique em qualquer exemplo para carregá-lo na aba Testar e executá-lo automaticamente.

Todos os testes, correspondências, substituições e análises de padrões ocorrem no seu navegador. Seu texto e padrões nunca são enviados a nenhum servidor.

Tips

Execução automática para feedback instantâneo

Com a execução automática ativada, os resultados são atualizados enquanto você digita. A ferramenta aplica debounce na entrada para manter a interface responsiva. Para textos muito grandes, a execução automática é automaticamente desativada para evitar travamentos.

Entendendo grupos de captura

Parênteses () criam grupos de captura. Clique em qualquer correspondência na tabela para ver seus grupos. Grupos nomeados (?<name>...) tornam a regex mais legível e a substituição mais fácil com $<name>.

Evitando backtracking catastrófico

Quantificadores aninhados como (a+)+ ou (a|a)*b podem causar tempo de execução exponencial. Mantenha os padrões simples, use construções atômicas quando possível e teste com entradas de casos extremos.

Diferenças do motor JavaScript

Esta ferramenta usa JavaScript RegExp. Algumas funcionalidades como quantificadores possessivos e grupos atômicos não estão disponíveis. O lookbehind requer um navegador moderno. Regex de Python, PCRE e .NET podem se comportar de forma diferente.

Casos de Uso Comuns

📝

Validação de formulários

Teste padrões de email, telefone, data e senha antes de implementá-los na sua lógica de validação frontend ou backend.

📊

Análise de logs

Extraia timestamps, níveis de erro e mensagens de arquivos de log usando grupos de captura nomeados. Copie as correspondências como JSON para processamento adicional.

🔍

Extração de dados

Extraia URLs, endereços IP, UUIDs ou cores hexadecimais de texto não estruturado. A tabela de correspondências mostra cada ocorrência com detalhes de posição.

⚙️

Refatoração de código

Use a aba Substituir para testar padrões de busca e substituição antes de aplicá-los no seu IDE. Suporta referências a grupos de captura como $1 e $<name>.

📚

Aprendendo Regex

A aba Explicar decompõe qualquer padrão em tokens compreensíveis. Combinado com a Folha de referência e os Exemplos, é um ambiente de aprendizado completo.

Perguntas Frequentes

O que é uma expressão regular?
Uma expressão regular (regex) é um padrão que descreve um conjunto de strings. É usada para pesquisar, corresponder e manipular texto. Por exemplo, \d+ corresponde a um ou mais dígitos.
Esta ferramenta usa regex JavaScript?
Sim. Esta ferramenta usa o motor RegExp integrado do JavaScript. Parte da sintaxe pode diferir de PCRE (PHP), Python re, .NET ou Java regex. O rótulo do motor é sempre exibido.
Por que minha regex funciona aqui mas não em Python?
Os motores regex de JavaScript e Python diferem em algumas áreas. Por exemplo, o lookbehind em JS deve ser de comprimento fixo em alguns navegadores, o comportamento de \b com Unicode é diferente e quantificadores possessivos não estão disponíveis em JS.
O que a flag global (g) faz?
Sem a flag global, apenas a primeira correspondência é retornada. Com g ativada, todas as correspondências não sobrepostas em todo o texto são encontradas e listadas.
Por que apenas uma correspondência é exibida?
A flag global (g) provavelmente não está ativada. Clique no botão g na linha de flags para ativá-la e encontrar todas as correspondências.
O que são grupos de captura?
Parênteses () em uma regex criam grupos de captura que lembram o texto correspondido. O Grupo 1 é o primeiro conjunto de parênteses, o Grupo 2 o segundo, etc. Grupos nomeados usam a sintaxe (?<name>...).
Como funcionam substituições como $1?
Na string de substituição, $1 refere-se ao texto correspondido pelo primeiro grupo de captura, $2 ao segundo, e assim por diante. $& é a correspondência completa. $<name> refere-se a um grupo nomeado.
Esta ferramenta faz upload dos meus dados?
Não. Todos os testes, correspondências e substituições de regex acontecem inteiramente no seu navegador usando JavaScript. Seu texto e padrões nunca saem do seu dispositivo.
Por que meu padrão é lento?
Alguns padrões causam backtracking catastrófico — tempo de execução exponencial em certas entradas. Evite quantificadores aninhados como (a+)+, use classes de caracteres específicas em vez de .*, e teste com entradas grandes cuidadosamente.
O que é backtracking catastrófico?
Quando um motor regex tenta muitas permutações para encontrar uma correspondência e falha, o tempo de execução pode crescer exponencialmente. Isso geralmente acontece com padrões ambíguos como (a+)+b na entrada "aaaaaaaac".
Posso testar grupos nomeados?
Sim. Use a sintaxe (?<name>...) no seu padrão. Grupos nomeados aparecem no painel de Grupos de captura e podem ser referenciados em substituições com $<name>.
Esta ferramenta suporta lookbehind?
Sim, em navegadores modernos. Lookbehind (?<=...) e (?<!...) são suportados no Chrome 62+, Firefox 78+ e Safari 16.4+. Navegadores antigos podem gerar um erro.