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:
- 01Decida primeiro se o sistema aceitará somente 000.000.000-00, somente números ou os dois formatos.
- 02Use grupos para tornar a estrutura legível e facilitar manutenção.
- 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.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.
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.