Brasil

Regex para CPF: formato com e sem pontuação

Regex consegue validar a aparência de um CPF, mas a validade matemática depende dos dígitos verificadores e deve ser calculada em código.

Ideia central: Regex valida ou encontra padrões de texto. Quando houver regra de negócio, cálculo ou semântica, use código complementar em vez de forçar tudo para dentro da expressão.
EM 30 SEGUNDOS

O que você precisa decidir antes do padrão

Regex consegue validar o formato do CPF; os dígitos verificadores precisam ser conferidos por algoritmo.

Pense no problema antes de escrever Regex

Um padrão fica mais simples quando a regra já está clara. Para este caso, siga esta sequência:

  1. 01Decida primeiro se o sistema aceitará somente 000.000.000-00, somente números ou os dois formatos.
  2. 02Use grupos para tornar a estrutura legível e facilitar manutenção.
  3. 03Depois da Regex, normalize removendo pontuação antes de executar o cálculo dos dígitos verificadores.

CPF formatado

^\d{3}\.\d{3}\.\d{3}-\d{2}$

O ponto precisa ser escapado porque . sozinho é um coringa. Esse padrão aceita a estrutura 000.000.000-00.

CPF somente com números

^\d{11}$

Esse formato é útil depois de remover pontuação antes de persistir ou integrar com APIs.

Formato não significa CPF válido

111.111.111-11 corresponde ao formato, mas isso não o torna um documento válido. Para validação de negócio, rejeite sequências inválidas e calcule os dois dígitos verificadores.

Normalize antes de comparar

Uma estratégia comum é remover tudo que não seja dígito, validar 11 posições e então executar o algoritmo de CPF. Isso evita que diferentes apresentações do mesmo valor sejam tratadas como documentos distintos.

Como ler o padrão em partes

Em vez de memorizar a expressão inteira, leia cada bloco pela responsabilidade que ele cumpre:

\d{3}representa cada bloco de três dígitos.
\.escapa o ponto para que ele signifique ponto literal, e não “qualquer caractere”.
-representa o hífen literal antes dos dois últimos dígitos.
^ ... $impede que um CPF aparentemente válido esteja escondido dentro de um texto maior.
QUANDO USAR

Onde Regex agrega valor aqui

Use Regex na camada de entrada para formato e feedback ao usuário. Use uma função específica para validar os dígitos verificadores.

ARMADILHAS

Erros comuns

  • Dizer que um CPF é “válido” apenas porque tem 11 números.
  • Esquecer que ponto sem escape tem significado especial em Regex.
  • Misturar formato e cálculo dos dígitos verificadores na mesma responsabilidade.
  • Não normalizar o valor antes de salvar ou comparar.

Teste e pratique

Use o Playground para experimentar o padrão com seus próprios dados e depois leve o conceito para as fases do jogo, onde os casos positivos e negativos são avaliados automaticamente.

Praticar no jogoAbrir Playground

Continue aprendendo

← Voltar ao hub de Regex