DEV Community

Cover image for Venha expressar regulamente conosco?
Suspir0n
Suspir0n

Posted on

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

Discussion (0)