Regex brasileiros · Biblioteca de padrões

Regex de CEP

Regex de CEP brasileiro, com ou sem hífen: cinco dígitos, hífen opcional e três dígitos. Só confere o formato; o endereço exige consulta a uma base de CEPs.

O padrão

\d{5}-?\d{3}

Flags: nenhuma. Sem âncoras: para validar um campo inteiro use ^(?:padrão)$.

Só o formato. Este regex confere a aparência do texto. Ele não prova que o dado existe nem que os dígitos verificadores estão certos.

Teste na hora

Tudo roda no seu navegador; nada do que você digita é enviado.

Exemplos

Casam

  • 01001-000
  • 01001000
  • 70040-010
  • 30140071

Não casam

  • 1234-567
  • 12345-67
  • 123456789
  • ab123-456
  • 12345--678

Como funciona, por partes

Armadilhas

Código pronto

JavaScript

const re = new RegExp("^(?:\\d{5}-?\\d{3})$");
console.log(re.test(texto.trim()));

Python

import re

re_cep = re.compile(r"[0-9]{5}-?[0-9]{3}")
print(bool(re_cep.fullmatch(texto.strip())))

C#

using System.Text.RegularExpressions;

var re = new Regex(@"^(?:[0-9]{5}-?[0-9]{3})\z");
bool ok = re.IsMatch(texto.Trim());

Perguntas frequentes

Dá para descobrir a cidade a partir do regex?

Não. O regex só olha a forma. Para obter rua, bairro e cidade é preciso consultar um serviço ou base de CEPs, e isso acontece fora do navegador, com a pessoa ciente de que o número será enviado ao serviço.

O hífen deve ser obrigatório?

Em campo digitado, não: aceite com e sem. Normalize para oito dígitos ao salvar e coloque o hífen só ao exibir, como em etiquetas e telas.

Existe CEP com letras?

No Brasil o CEP é numérico, com oito dígitos. Letras indicam erro de digitação ou outro sistema de código postal, como o de outros países.

Como tratar o CEP em planilhas?

Formate a coluna como texto antes de colar os dados. Se o programa já converteu para número, os zeros iniciais sumiram: recomponha com preenchimento à esquerda até oito dígitos e só depois aplique o padrão. Também vale remover espaços e pontos que vêm de cópias de sites.

Ferramentas

← Ver todos os padrões