Jump to content


Photo

Mostrando como funciona expressão regular no Python


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 WMO Notícias

WMO Notícias

    Normal

  • Moderadores
  • 73 posts
  • Sexo:Não informado

Posted 27/02/2015, 16:38

 

05478378.png

Nesse post, irá mostrar expressões regulares para validar telefones, CEP e placas de veículos em Python.

Expressão regular Python

No 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:

  1. >>> import re
  2. >>> telefone = re.compile('(d{2}) d{4,5}-d{4}')
  3. >>> telefone.match('(49) 8437-6819')
  4. <_sre.SRE_Match object; span=(0, 14), match='(49) 8437-6819'>
  5. >>> telefone.match('(49) 8437-691') is None
  6. True

O que cada linha de código faz?

Na primeira linha importa-se as funções do modulo “re”

  1. >>> import re

Construa-se um objeto usando a função re.compile

  1. >>> 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.

  1. >>> telefone.match('(49) 8437-6819')

Após isso aparece um retorno

  1. <_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.

  1. >>> 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:
  1. >>> cep = re.compile('d{5}-d{3}')
  2. >>> cep.match('89900-000')
  3. <_sre.SRE_Match object; span=(0, 9), match='89900-000'>
  4. >>> cep.match('89900-00') is None
  5. True
Comparando placas de veículos com expressão regular:
  1. >>> placa = re.compile('([a-z]{3}|[A-Z]{3})-d{4}')
  2. >>> placa.match('AAA-1234')
  3. <_sre.SRE_Match object; span=(0, 8), match='AAA-1234'>
  4. >>> placa.match('aaa-1234')
  5. <_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.

 

 






2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq