Testador de regex

Processado neste navegador

Limite de texto: 2000000 caracteres

Esta ferramenta não envia sua entrada.

A validação de e-mail no front não pega o + do Gmail. Esta aba testa a regex em JavaScript. Troca literal de produto é a página de localizar.

A validação no front recusou nome+tag@gmail.com e você quer ver o match antes de brigar com o QA. O trabalho é testar a expressão nesta aba, no motor JavaScript do navegador, no texto colado.

Não é um laboratório com oito motores. Não é java.util.regex.Pattern. Não é o substituir do dia a dia.

JavaScript não é Java

O tombo clássico: lookbehind (?<=…) no JS moderno aceita largura variável; no Java o compilador recusa grupo sem comprimento máximo óbvio. Grupos nomeados no JS usam (?<nome>…); no Python o P é obrigatório. \A e \z existem no Java e não no JS. Possessivo e grupo atômico ((?>…)) também ficam no JDK.

Se o backend é Java, esta aba é um rascunho — não a prova.

Flags que a UI expuser (g, i, m, s, u) são as do RegExp. u muda \w e propriedades Unicode; sem ela, \p{L} pode virar texto literal.

Como testar sem derrubar a aba

  1. Cole um trecho representativo — um e-mail, um CNPJ mascarado de teste, não o access log.
  2. Escreva a expressão e as flags.
  3. Leia índices e grupos. Substituição, se a interface tiver, usa o replace do JS ($1, não a sintaxe do .NET).

Troca simples: localizar. Nada é enviado.

ReDoS e CPF

(a+)+b em string longa de a trava a aba. Isto não valida CPF na Receita e não é antivírus de log.

Utilitário de RegExp nesta aba. O motor do servidor manda mais que o destaque amarelo.

Perguntas frequentes

A regex passou aqui e quebrou no Java do backend.

São motores diferentes. JavaScript (ES2018+) aceita lookbehind de largura variável; java.util.regex exige comprimento “óbvio” e tem quantificador possessivo (*+) que o JS não tem. Flags aqui são letras g i m s u y d. Confira no JDK antes de commitar o Pattern.compile.

Só quero trocar “Produto A” por “Produto B”.

Localizar e substituir é troca literal. Aqui é RegExp.

A aba travou com o log inteiro.

Quantificador guloso em texto grande (ReDoS). (a+)+ é má ideia. Cole um trecho, não a semana de produção.

O log com CPF sobe?

Não. Continua dado pessoal nesta aba. Não cole dump de cliente.

Como levar os grupos para uma planilha?

Copie as capturas, monte um array e, se precisar de coluna, use JSON ↔ CSV.

Posso mandar a expressão no Slack?

A regex sim. O dump de produção, não.

Ferramentas relacionadas