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.
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,
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})
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.
Top comments (0)