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

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay