Ir para o conteudo principal

Regex Tester

Teste e depure suas expressões regulares online

Sua regex não funciona como esperado? Cole seu padrão e seu texto abaixo. Correspondências, grupos de captura e posições byte aparecem em segundos.

Opções

Motor RE2 seguro

O RE2 garante tempo de execução linear. Nenhum risco de ReDoS, mesmo com padrões complexos.

Grupos de captura detalhados

Grupos nomeados e indexados exibidos com suas posições byte exatas no texto de origem.

4 flags configuráveis

Sem distinção de maiúsculas, multilinha, dot-all e non-greedy. Ativáveis com um clique antes do teste.

Resultados instantâneos

Até 1.000 correspondências analisadas em tempo real. Posições byte precisas para cada match.

UTF-8 nativo

O padrão é avaliado em texto UTF-8. Acentos, emojis e caracteres especiais são totalmente suportados.

Por que testar suas regex online?

Uma regex escrita "de cabeça" raramente funciona na primeira tentativa. Edge cases Unicode, diferenças entre motores e erros de escape geram bugs silenciosos em produção. Testar online antes do deploy economiza horas de depuração.

Três situações em que esta ferramenta resolve seu problema:

  • Validar antes de integrar → Confirme que sua regex captura exatamente o esperado, sem falsos positivos
  • Depurar um padrão existente → Descubra por que uma regex não captura as substrings corretas
  • Garantir compatibilidade RE2 → Verifique que seu padrão funciona no motor RE2 do Go antes do deploy

Como usar o regex tester em 3 passos

Passo 1: Inserir o padrão

Digite sua expressão regular no campo dedicado. Exemplo para extrair domínios de um registro SPF:

include:(?P<domain>[a-z0-9._-]+)

Passo 2: Colar o texto de teste

Cole o texto contra o qual você quer testar sua regex:

v=spf1 include:_spf.captaindns.com include:spf.protection.outlook.com ~all

Ative os flags conforme necessário: sem distinção de maiúsculas, multilinha, dot-all ou non-greedy.

Passo 3: Ler os resultados

Cada correspondência aparece com três informações: posição byte no texto, conteúdo correspondido e grupos de captura. Grupos nomeados são identificados pelo nome, não pelo índice.


O que é uma expressão regular?

Uma expressão regular (regex) é um padrão que descreve um conjunto de cadeias de caracteres. Ela permite pesquisar, validar ou extrair texto segundo regras precisas. Desenvolvedores usam regex diariamente para parsing, validação e transformação de dados.

Componentes fundamentais:

ElementoSintaxeExemploResultado
Caractere literalaabc em "abcdef"corresponde "abc"
Classe de caracteres[a-z][0-9]+ em "porta 443"corresponde "443"
Quantificador+, *, ?a+ em "aab"corresponde "aa"
Grupo de captura(...)(abc) em "xabcx"captura "abc"
Âncora^, $^v=spf1corresponde no início da linha
Alternânciaa|bcat|dog em "my cat"corresponde "cat"

Exemplo concreto com grupos nomeados:

(?P<protocol>https?)://(?P<domain>[a-z0-9.-]+)

Aplicado a https://captaindns.com/tools:

  • Grupo protocol: https
  • Grupo domain: captaindns.com

Sintaxe RE2 vs PCRE: as diferenças

O motor RE2, criado pelo Google e usado pelo Go, difere do PCRE (PHP, JavaScript, Python) em pontos críticos. A principal diferença: RE2 garante tempo de execução linear. PCRE não oferece essa garantia.

FuncionalidadeRE2PCRE
Tempo de execução garantidoLinear O(n)Exponencial possível
Lookahead/lookbehindNão suportadoSuportado
Backreferences (\1)Não suportadoSuportado
Quantificadores possessivosNão suportadoSuportado
Grupos nomeados(?P<nome>...)(?P<nome>...) ou (?<nome>...)
Flag non-greedy global(?U)Não padrão
UnicodeNativo (UTF-8)Via flag u

Por que isso importa? A garantia de tempo linear do RE2 elimina ataques ReDoS (Regular Expression Denial of Service). Por isso o RE2 é a escolha padrão para serviços web expostos à Internet.


Casos de uso reais

Validar um registro SPF

Situação: Você quer verificar se o registro SPF do seu domínio contém os mecanismos include corretos.

Diagnóstico: Teste o padrão include:([a-z0-9._-]+) contra o valor do seu registro TXT. A ferramenta lista cada domínio incluído com sua posição byte.

Ação: Compare os domínios extraídos com sua lista esperada. Detecte includes ausentes ou incorretos antes que afetem a entregabilidade dos seus emails.

Extrair endereços de email de um texto

Situação: Você precisa extrair todos os endereços de email de um arquivo de configuração ou log.

Diagnóstico: Use o padrão [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} com o flag sem distinção de maiúsculas. Cada email encontrado aparece como uma correspondência distinta.

Ação: Exporte os endereços extraídos e verifique se cada um é legítimo. Remova duplicatas e endereços malformados.

Depurar um padrão de log parsing

Situação: Seu parser de logs não captura o timestamp no formato correto.

Diagnóstico: Teste com grupos nomeados: (?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}). Verifique se cada grupo captura a substring esperada.

Ação: Ajuste quantificadores ou classes de caracteres até que cada grupo extraia o valor correto. Copie o padrão validado para seu código.


Erros de sintaxe comuns

ErroCausaCorreção
error parsing regexpParêntese não fechado ou quantificador sem alvoVerifique parênteses e colchetes
invalid escape sequenceSequência de escape não reconhecida no RE2Use \\ para uma barra invertida literal
invalid named captureSintaxe incorreta para grupo nomeadoUse (?P<nome>...) (não (?<nome>...))
invalid repeat countQuantificador fora dos limites aceitosReduza o valor do quantificador
Nenhum resultadoPadrão muito restritivo ou flag ausenteAtive sem distinção de maiúsculas ou dot-all

❓ FAQ - Perguntas frequentes

Q: Por que minha regex não encontra nenhuma correspondência?

R: Três causas possíveis. Primeira: a sintaxe RE2 não suporta lookahead, lookbehind nem backreferences. Segunda: o flag "sem distinção de maiúsculas" pode estar desativado. Terceira: caracteres especiais não escapados invalidam o padrão.


Q: O que é a sintaxe RE2?

R: RE2 é o motor regex do Go, criado pelo Google. Ele garante tempo de execução linear em relação ao tamanho da entrada. Diferente do PCRE, o RE2 não é vulnerável a ataques ReDoS.


Q: Quais flags regex estão disponíveis?

R: Quatro flags: sem distinção de maiúsculas (i), multilinha (m), dot inclui newline (s) e non-greedy (U). Cada flag modifica o comportamento do motor para todo o padrão.


Q: Qual é o limite de tamanho do texto?

R: O padrão é limitado a 10 KB. O texto de teste aceita até 1 MB. O máximo de correspondências retornadas é 1.000. Esses limites protegem o serviço contra abusos.


Q: O que é um grupo de captura nomeado?

R: Um grupo nomeado usa a sintaxe (?P<nome>...) no RE2. Ele extrai uma substring identificada por um nome, não por um índice numérico. Essencial para padrões complexos com vários grupos.


Q: O RE2 é compatível com as regex JavaScript?

R: Parcialmente. O RE2 suporta classes de caracteres, quantificadores e grupos. Funcionalidades ausentes: lookahead, lookbehind, backreferences e quantificadores possessivos.


Q: Os dados são armazenados?

R: Não. Seu padrão e texto são enviados à API CaptainDNS, processados e excluídos imediatamente. Nenhum conteúdo é armazenado ou registrado em log.


Ferramentas complementares

FerramentaUtilidade
Hash GeneratorCalcular o hash de um texto correspondido pela sua regex
Codificador/decodificador Base64Decodificar um texto Base64 antes de testá-lo com regex
Codificador/decodificador URLDecodificar URLs codificadas antes da extração regex
Conversor de caixaNormalizar a caixa de um texto antes de aplicar sua regex
Inspetor SPFVerificar os registros SPF que você valida por regex

Recursos úteis


Compromisso de privacidade

Seu padrão e texto são enviados à API CaptainDNS unicamente para executar o teste regex. Nenhum conteúdo é armazenado após o processamento. Apenas métricas técnicas anônimas são registradas: tamanho do padrão, número de correspondências e duração da execução.