Gerador de Regex

Crie e teste expressões regulares para validação de dados. Patterns prontos para CPF, email, telefone e muito mais.

//

Explicação do Pattern

Valida CPF com ou sem formatação (pontos e traço)

^ - Inicio da string\d{3} - Tres digitos (primeiro bloco)\.? - Ponto opcional\d{3} - Tres digitos (segundo bloco)\.? - Ponto opcional\d{3} - Tres digitos (terceiro bloco)-? - Traco opcional\d{2} - Dois digitos verificadores$ - Fim da string

Exemplos

Válidos

  • 123.456.789-09
  • 12345678909
  • 000.000.000-00

Inválidos

  • 123.456.789-0
  • 123456789
  • 12345678901234

Código em diferentes linguagens

JavaScript
// JavaScript
const regex = /^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$/;
const text = "seu texto aqui";

// Testar se corresponde
const isMatch = regex.test(text);
console.log("Corresponde:", isMatch);

// Encontrar correspondencias
const matches = text.match(/^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$/g);
console.log("Correspondencias:", matches);

// Substituir
const resultado = text.replace(regex, "substituicao");
console.log("Resultado:", resultado);

O Que é Regex (Expressão Regular)?

Regex (ou Expressão Regular) é uma sequência de caracteres que define um padrão de busca. É uma ferramenta poderosa usada em programação para validar, extrair e manipular textos.

Com regex, você pode verificar se um email está no formato correto, extrair números de telefone de um texto, validar CPFs, e muito mais. Praticamente toda linguagem de programação suporta expressões regulares.

Sintaxe Básica de Regex

Entenda os principais caracteres e metacaracteres usados em expressões regulares:

Caracteres Literais

Caracteres comuns correspondem a si mesmos. Por exemplo, abc corresponde exatamente a "abc".

Metacaracteres

SímboloSignificadoExemplo
.Qualquer caractere (exceto quebra de linha)a.c = "abc", "a1c", "a@c"
^Início da string^abc = começa com "abc"
$Fim da stringabc$ = termina com "abc"
*Zero ou mais ocorrênciasab*c = "ac", "abc", "abbc"
+Uma ou mais ocorrênciasab+c = "abc", "abbc" (não "ac")
?Zero ou uma ocorrênciacolou?r = "color", "colour"
{n}Exatamente n ocorrências\d{3} = três dígitos
{n,m}Entre n e m ocorrências\d{2,4} = 2 a 4 dígitos
[abc]Qualquer caractere do conjunto[aeiou] = uma vogal
[^abc]Qualquer caractere exceto os listados[^0-9] = não é dígito
(abc)Grupo de captura(ab)+ = "ab", "abab"
|Alternativa (ou)cat|dog = "cat" ou "dog"

Classes de Caracteres

ClasseEquivalenteSignificado
\d[0-9]Qualquer dígito
\D[^0-9]Qualquer não-dígito
\w[a-zA-Z0-9_]Caractere de palavra
\W[^a-zA-Z0-9_]Não é caractere de palavra
\s[ \t\n\r\f]Espaço em branco
\S[^ \t\n\r\f]Não é espaço em branco

Tabela de Patterns Comuns

ValidaçãoPatternDescrição
Email^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$Valida formato de email
CPF^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$Com ou sem formatação
CNPJ^\d{2}\.?\d{3}\.?\d{3}\/?\d{4}-?\d{2}$Com ou sem formatação
Telefone BR^\(?\d{2}\)?\s?9?\d{4}-?\d{4}$Fixo ou celular
CEP^\d{5}-?\d{3}$Com ou sem hifen
Data BR^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/\d{4}$DD/MM/YYYY
URL^(https?:\/\/)?[\w.-]+\.[a-z]{2,}(\/\S*)?$Com protocolo opcional
IPv4^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$Endereço IP v4
Senha Forte^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&#]).{8,}$Mín 8, maiúsc, minúsc, num, símbolo
Cor Hex^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$#RGB ou #RRGGBB

Flags (Modificadores)

Flags alteram o comportamento da expressão regular:

g (global) - Encontra todas as correspondências, não apenas a primeira.
i (ignoreCase) - Ignora diferença entre maiúsculas e minúsculas.
m (multiline) - ^ e $ correspondem ao início/fim de cada linha.
s (dotAll) - O ponto (.) também corresponde a quebras de linha.
u (unicode) - Habilita recursos completos de Unicode.

Casos de Uso Comuns

Validação de Formulários

Use regex para validar campos de formulário como email, telefone, CPF, CNPJ, CEP e senhas. A validação no frontend melhora a experiência do usuário, mas sempre valide também no backend.

Busca e Substituição

Encontre padrões específicos em textos e substitua por outros valores. Ideal para formatação de dados, limpeza de textos e transformações em massa.

Extração de Dados

Extraia informações específicas de textos, como números de telefone de uma página web, emails de um documento, ou datas de logs.

Processamento de Logs

Analise arquivos de log para encontrar erros, extrair IPs, identificar padrões de acesso e gerar relatórios automatizados.

Dicas para Escrever Regex

  • Comece simples: Construa sua regex gradualmente, testando cada parte.
  • Use grupos de captura: Parênteses permitem extrair partes específicas do match.
  • Escape caracteres especiais: Use \ antes de . * + ? ^ $ { } [ ] \ | ( )
  • Seja específico: Patterns muito genéricos podem ter matches indesejados.
  • Considere performance: Regex complexas podem ser lentas em textos grandes.
  • Documente: Regex podem ser difíceis de entender, adicione comentários.

Perguntas Frequentes

Qual a diferença entre * e + em regex?

O * (asterisco) corresponde a zero ou mais ocorrências do elemento anterior, enquanto o + (mais) exige pelo menos uma ocorrência. Por exemplo, a*b corresponde a "b", "ab" e "aab", mas a+b só corresponde a "ab" e "aab".

Como validar um CPF com regex?

Use o pattern ^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$ para validar o formato com ou sem pontuação. Porém, a validação matemática dos dígitos verificadores requer lógica adicional além da expressão regular.

Regex e case-sensitive por padrao?

Sim. Por padrão, regex diferencia maiúsculas de minúsculas. Use a flag i (ignoreCase) para ignorar essa diferença: /abc/i corresponde a "ABC", "Abc" e outras variações.

Como corresponder a um ponto literal?

O ponto (.) é um metacaractere que corresponde a qualquer caractere. Para corresponder a um ponto literal, escape-o com uma barra invertida: \. (ponto escapado).

Posso usar regex em qualquer linguagem de programação?

Sim, praticamente todas as linguagens modernas suportam regex: JavaScript, Python, PHP, Java, C#, Ruby, Go, entre outras. A sintaxe base é similar, mas existem pequenas variações entre elas.

O que significa o símbolo ^ no início da regex?

O símbolo ^ (circunflexo) indica o início da string. Quando uma regex começa com ^, ela só corresponderá se o padrão estiver no começo do texto.

O que são grupos de captura?

Grupos de captura são definidos com parênteses () e permitem extrair partes específicas do texto correspondido. Por exemplo, (\d{2})/(\d{2})/(\d{4}) captura dia, mês e ano separadamente.

Como testar minhas expressões regulares?

Use ferramentas online como regex101.com, regexr.com ou este próprio gerador. Elas permitem testar, depurar e entender suas expressões regulares em tempo real.

Sobre Este Gerador

Este gerador de regex oferece patterns prontos para validação de dados brasileiros e internacionais. Selecione uma categoria, escolha o pattern desejado, teste com seus dados e copie o código pronto para usar em JavaScript, Python, PHP, Java ou C#.

Todos os patterns são testados e incluem explicações detalhadas de cada parte da expressão regular, facilitando o aprendizado e a personalização conforme suas necessidades.