Nesse post, irá mostrar expressões regulares para validar telefones, CEP e placas de veículos em Python.
Expressão regular PythonNo Python não tem sintaxe literal para expressões regulares, as funções do modulo re aceitam uma String representando uma expressão regular.
Exemplo de expressão regular:Primeiro validar um numero de telefone:
- >>> import re
- >>> telefone = re.compile('(d{2}) d{4,5}-d{4}')
- >>> telefone.match('(49) 8437-6819')
- <_sre.SRE_Match object; span=(0, 14), match='(49) 8437-6819'>
- >>> telefone.match('(49) 8437-691') is None
- True
O que cada linha de código faz?
Na primeira linha importa-se as funções do modulo “re”
- >>> import re
Construa-se um objeto usando a função re.compile
- >>> telefone = re.compile('(d{2}) d{4,5}-d{4}')
O objeto que foi devolvido acima tem métodos e recebe as funções do mesmo nome, usando o método match, confere o que foi se o que foi passado está batendo com a expressão regular.
- >>> telefone.match('(49) 8437-6819')
Após isso aparece um retorno
- <_sre.SRE_Match object; span=(0, 14), match='(49) 8437-6819'>
Isso mostra que o que foi passado para o método é compatível com a expressão regular.
No próximo teste coloca-se um número que não corresponde a expressão regular logo após informa-seis None que retorna True ou False.
- >>> telefone.match('(49) 8437-691') is None
Nesse caso retorna True, relatando que a String informada não bate com a expressão regular.
Comparando CEP com expressão regular:- >>> cep = re.compile('d{5}-d{3}')
- >>> cep.match('89900-000')
- <_sre.SRE_Match object; span=(0, 9), match='89900-000'>
- >>> cep.match('89900-00') is None
- True
- >>> placa = re.compile('([a-z]{3}|[A-Z]{3})-d{4}')
- >>> placa.match('AAA-1234')
- <_sre.SRE_Match object; span=(0, 8), match='AAA-1234'>
- >>> placa.match('aaa-1234')
- <_sre.SRE_Match object; span=(0, 8), match='aaa-1234'>
Veja que retornou corretamente, tanto para letras maiúsculas como para minúsculas.
Esses são alguns exemplos que podemos usar em expressão regulares em Python.
Obrigado.