DEV Community

Cover image for Venha expressar regulamente conosco?
Suspir0n
Suspir0n

Posted on

4 2

Venha expressar regulamente conosco?

Olá galera, voltando com mais um diário de bordo, hoje iremos transcrever, explicar e demostrar como funciona um regex, e como em todos os artigos que eu faço, deixarei um exemplo prático em python de como se utilizar.

What is regex?

O que é uma expressão regular?

De acordo com Alexandre Servian diz "Uma expressão regular é um método formal de se especificar um padrão de texto.", no artigo dele, ele retrata que com ela pode lidar com algumas situações como:

  • Procura
  • Substituição
  • Validação de formatos
  • Filtragem de informações

Regex, na prática

Vamos criar nosso primeiro exemplo, com isso usaremos algo fácil e padrão, para você poder implementar em qualquer linguagem, o que muda é a forma que você chama a lib ou se é com um construtor ou não entre outros.

O Regex que vamos criar é para validação de CPF ou CNPJ, irei demostrar o regex pronto e logo em seguida explicarei parte por parte dele.

Esta solução valida estes formatos:

CPF - 00000000000
CNPJ - 00000000000000
CPF - 000.000.000-00
CNPJ - 00.000.000/0000-00
CPF - 000000000-00
CNPJ - 00000000/0000-00,
Enter fullscreen mode Exit fullscreen mode

Por exemplo. Os pontos e traços são opcionais em cada uma das posições.

O que não é aceito, por exemplo: 000-000-000-00 (mas pode ser alterado conforme nota abaixo)

Exemplo:

([0-9]{2}[\.]?[0-9]{3}[\.]?[0-9]{3}[\/]?[0-9]{4}[-]?[0-9]{2})|([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • [0-9]{2} Faixa de caracteres: 0 a 9, quantidade: 2 caracteres;
  • [0-9]{3} Faixa de caracteres: 0 a 9, quantidade: 3 caracteres;
  • [0-9]{4} Faixa de caracteres: 0 a 9, quantidade: 4 caracteres;
  • [.]?Um ponto, opcional. Foi usado \ no ponto, pois ele sozinho é caractere especial;
  • [-]? Um traço, opcional (se acrescentar outros caracteres, comece pelo – sempre);
  • [\/]? Uma barra, opcional. Tambem “escapada” com \ pra agradar o PCRE;
  • (grupo1)|(grupo2) Se um dos grupos validar, a expressão é válida.

Caso queira aceitar outros separadores, basta acrescentar entre os [ ].

Exemplo:

[-.\/]? Vai aceitar tanto - quanto . e / naquela posição (? = ou nada).

Se quiser saber mais sobre o regex e quais outros caracteres especiais ele aceita, temos a Documentação em JavaScript e a Documentação em Python

Este foi o diário de bordo #08 vamos nos despedindo por aqui. Voltaremos com mais um diário de bordo.

Este artigo foi útil para você?
Deixe um comentário abaixo.

Referências

Top comments (0)

Jetbrains Survey

Calling all developers!

Participate in the Developer Ecosystem Survey 2025 and get the chance to win a MacBook Pro, an iPhone 16, or other exciting prizes. Contribute to our research on the development landscape.

Take the survey