Ferramentas

Testador Regex Online Gratuito

Teste e depure expressões regulares JavaScript no navegador. Veja as correspondências destacadas em tempo real, inspecione os grupos de captura e visualize a prévia das substituições. Nada é enviado a um servidor.

Flags
Padrões Rápidos

Resultados das Correspondências

Todas as correspondências são calculadas localmente no seu navegador. Seus padrões e texto nunca são enviados, armazenados ou registrados.

O que é uma Expressão Regular?

Uma expressão regular (regex) é uma sequência de caracteres que define um padrão de busca. Em vez de procurar uma cadeia fixa, uma regex descreve a forma do texto que você quer encontrar — dígitos, palavras, endereços de e-mail, datas e mais. Isso torna a correspondência por padrões uma das ferramentas mais poderosas para desenvolvedores, analistas de dados e administradores de sistemas, que a usam diariamente para validar entradas, buscar em logs e transformar texto de forma rápida e confiável.

Flags de Regex JavaScript Explicadas

g global — encontra todas as correspondências na cadeia, não apenas a primeira.
i sem distinção de maiúsculas — as letras correspondem independentemente de maiúsculas ou minúsculas.
m multilinha — as âncoras ^ e $ correspondem ao início e ao fim de cada linha, não apenas da cadeia inteira.
s dotAll — o ponto . também corresponde a quebras de linha.
u unicode — habilita a correspondência Unicode completa, incluindo pontos de código acima de U+FFFF.

Referência de Padrões Regex Comuns

Padrão Regex Corresponde
E-mail /[^\s@]+@[^\s@]+\.[^\s@]+/ hello@charcount.app
URL /https?:\/\/[^\s]+/ https://charcount.app
IPv4 /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/ 192.168.0.1
Data (AAAA-MM-DD) /\d{4}-\d{2}-\d{2}/ 2026-06-30
Cor Hex /#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\b/ #4338ca
UUID v4 /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab]…/i 9f1c…5b6c

Grupos de Captura em Regex

Os parênteses permitem capturar partes de uma correspondência para extraí-las ou reutilizá-las. Existem três tipos:

  • ( ) — grupo de captura: armazena o que correspondeu, acessível como $1, $2, … nas substituições.
  • (?: ) — grupo sem captura: agrupa o padrão para alternância ou quantificadores sem armazená-lo.
  • (?<name> ) — grupo nomeado: captura com um nome legível, acessível como groups.nome.

Por exemplo, analisar uma data com três grupos: (\d{4})-(\d{2})-(\d{2})

Perguntas Frequentes

.* é guloso (greedy): corresponde ao máximo de texto possível e depois retrocede se necessário. .*? é preguiçoso (lazy, não guloso): corresponde ao mínimo possível e só se expande quando é forçado. Por exemplo, no texto "<a><b>", o padrão <.*> corresponde a todo o "<a><b>", enquanto <.*?> corresponde apenas a "<a>". Use a versão preguiçosa quando quiser a correspondência mais curta possível, como ao analisar tags HTML individuais.

Caracteres como . ( ) [ ] { } + * ? ^ $ | \ têm significado especial em regex, então para correspondê-los literalmente você os escapa com uma barra invertida. Escreva \. para um ponto literal, \( para um parêntese de abertura literal e \\ para uma barra invertida literal. Dentro de uma classe de caracteres, por exemplo [.], a maioria desses caracteres perde o significado especial e não precisa de escape.

A maioria dos testadores online usa por padrão o motor PCRE, enquanto esta ferramenta e o seu navegador usam o motor JavaScript (ECMAScript), que não tem alguns recursos. JavaScript não suporta lookbehind em motores antigos, quantificadores possessivos, recursão ou flags inline como (?i). Certifique-se de que o seu testador esteja configurado para o sabor JavaScript para que o comportamento corresponda ao do seu código.

O flag g (global) faz a regex encontrar todas as correspondências na cadeia em vez de parar na primeira. Você precisa dele com métodos como matchAll() ou replaceAll(), ou para substituir todas as ocorrências com replace(). Sem g, métodos como replace() alteram apenas a primeira correspondência. Note que uma regex global mantém um estado lastIndex, então reutilize-a com cuidado ao chamar exec() em um laço.