Testador de regex: expressões regulares e substituição
Teste uma regex JavaScript: correspondências destacadas, posições, grupos capturados, substituição com $1 e $2, símbolos explicados e padrões prontos.
Entender uma regex: grupos de captura, $1 e substituição
Cada par de parênteses de uma expressão regular captura um trecho da correspondência, numerado da esquerda para a direita ($1, $2…), que a substituição pode reutilizar. A ferramenta destaca as correspondências no texto, detalha os grupos capturados de cada uma, nomeia os elementos de sintaxe presentes no padrão e fornece o código JavaScript equivalente.
Os grupos de captura na prática
O padrão padrão ([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,}) contém dois grupos: $1 captura a parte antes da arroba, $2 o domínio. No texto de exemplo, com as flags gi, a ferramenta encontra 3 endereços; para support@kristools.com, $1 vale support e $2 kristools.com. A substituição [$1 at $2] dá “[support at kristools.com]”. Um grupo que começa com (?: agrupa sem capturar: não recebe número.
Exemplo: converter datas ISO para o formato brasileiro
O padrão “Data ISO” captura o ano, o mês e o dia em três grupos. Na frase de exemplo, ele retém 2026-08-25 e 2026-12-31 e ignora 2026-13-40, mês impossível. A substituição $3/$2/$1 produz 25/08/2026 e 31/12/2026.
O que a ferramenta exibe
- As correspondências destacadas no texto, com sua posição de início e de fim.
- Para cada uma, a lista $1, $2… dos grupos capturados.
- Uma análise que nomeia os elementos identificados no padrão: ^, $, \d, \w, \s, \b, os quantificadores +, * e ?, os grupos e as classes entre colchetes.
- O botão “JS Code”, que copia
const regex = /padrão/flags;seguido de uma chamada atext.match(regex).
Os oito padrões oferecidos (e-mail, URL, telefone francês, data ISO, IPv4 limitado a 0-255, cor hexadecimal, UUID v4, tag HTML) também carregam um texto de teste adequado.
Limites
- A análise identifica caracteres, não lê a estrutura: um + dentro de uma classe como
[+-]ainda assim é descrito como quantificador. As chaves{n,m}, a alternativa|, o ponto e as asserções lookahead ou lookbehind não são explicados. - Uma barra não escapada no padrão torna inválido o código JavaScript copiado: escreva
\/. - Com a flag g, a lista para em 1.000 correspondências.
Para ocultar e-mails, UUID ou tags em um texto, carregue o padrão desejado, digite o texto de substituição e copie o resultado com o botão colocado acima da cadeia obtida.
Perguntas frequentes
Como usar $1 e $2 em uma substituição regex?
$1 retoma o texto capturado pelo primeiro par de parênteses, $2 pelo segundo, contando os parênteses de abertura da esquerda para a direita. Com o padrão padrão e a substituição [$1 at $2], support@kristools.com vira [support at kristools.com].
Qual a diferença entre (...) e (?:...)?
(...) captura o texto e lhe atribui um número reutilizável ($1, $2…). (?:...) apenas agrupa, por exemplo para aplicar um quantificador a vários caracteres, sem criar um grupo numerado. Trocar um grupo desnecessário por (?:...) evita deslocar a numeração dos seguintes.
Como converter uma data AAAA-MM-DD em DD/MM/AAAA com uma regex?
Capture as três partes com \b(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\b e substitua por $3/$2/$1. 2026-08-25 vira 25/08/2026, e 2026-13-40 é ignorada porque o mês 13 não existe. O dia 31 continua aceito para todos os meses: 2026-02-31 passa.
O código JavaScript copiado funciona diretamente?
Sim para a maioria dos padrões: a ferramenta copia const regex = /padrão/flags; e depois text.match(regex). Se o padrão contém uma barra não escapada, o literal se torna inválido: escreva \/ no lugar de /. Com a flag g, match devolve a lista das correspondências sem os grupos; use matchAll para obtê-los.
Por que minha regex encontra apenas uma correspondência?
A flag g (global) provavelmente está desativada. Sem ela, o JavaScript para na primeira correspondência, tanto na busca quanto na substituição. Ative g para obter todas as ocorrências.
Qual regex para detectar um número de telefone francês?
O padrão oferecido é (?:(?:\+|00)33|0)\s*[1-9](?:[\s.-]*\d{2}){4}. Ele reconhece 06 12 34 56 78 assim como +33 1.23.45.67.89: prefixo +33, 0033 ou 0, um dígito de 1 a 9 e depois quatro pares de dígitos separados ou não por espaços, pontos ou hifens.
Como ocultar todos os endereços de e-mail de um texto com uma regex?
Carregue o padrão de e-mail, mantenha a flag g ativa e digite [E-MAIL OCULTO] no campo de substituição. No exemplo carregado, os 2 endereços completos são substituídos e invalid@email, sem extensão de domínio, permanece intacto. O botão de cópia recupera o texto obtido.
O padrão IPv4 verifica se um endereço IP é válido?
Sim para a faixa de cada octeto: o padrão repete quatro vezes a alternativa 25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?, que limita cada número a 0-255. 192.168.1.50 é reconhecido, 999.300.1.1 não. Em contrapartida, ele não diz se o endereço é privado ou público.
A ferramenta é realmente gratuita?
Sim, todas as ferramentas do Kristools são 100% gratuitas e acessíveis sem cadastro.
Meus dados estão protegidos?
Sim. Todo o processamento é feito diretamente e com segurança no seu navegador. Nenhum dado pessoal é enviado para os nossos servidores.