Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Espaço

Olá,

No caso se eu tiver um espaço em branco no cep ou em um numero de telofone eu teria que colocar no minha "re.compile"?

ex.

tel = "+55 21 99998-7654"

re.compile("[+]?[0123456789]{2}[]?[0123456789]{2}[]?[0123456789]{5}[-]?[]?[0123456789]{4}")
1 resposta
solução!

Olá Vitor, tudo bem com você?

Será necessário sim informar que a string pode conter espaço vazio, uma das formas que podemos fazer isso é colocarmos um espaço vazio entre os colchetes, o padrão que você criou, basta adicionar os espaços, ficando como abaixo.

padrao = re.compile("[+]?[0123456789]{2}?[ ]?[0123456789]{2}?[ ]?[0123456789]{5}[-]?[0123456789]{4}")

Note que foi adicionado um espaço no terceiro e sétimo conjunto de colchetes ([ ]) contando da esquerda para a direita.

Uma segunda forma que podemos informar que a busca com padrões em strings que podem ou não conter um espaço, será fazendo o uso do caractere especial \s, s minúsculo.

  • \s = Retorna match se encontrado espaço se a string contém espaço em branco.
padrao = re.compile("[+]?[0123456789]{2}?[\s]?[0123456789]{2}?[\s]?[0123456789]{5}[-]?[0123456789]{4}")

Esse segundo método ficará mais explícito que está buscando por um espaço vazio.

Teste do padrão

import re

telefone_um = "+55 21 99998-7654"
telefone_dois = "+552199998-7654"


padrao = re.compile("[+]?[0123456789]{2}?[\s]?[0123456789]{2}?[\s]?[0123456789]{5}[-]?[0123456789]{4}")

busca_com_espaco = padrao.search(telefone_um)
sem_espaco = padrao.search(telefone_dois)

print(busca_com_espaco.group())
print(sem_espaco.group())
`

Resultado

+55 21 99998-7654
+552199998-7654

Para aprimorar ainda mais o seu aprendizado, recomendo a leitura do seguinte artigo, onde será apresentado com detalhes sobre outros caracteres especiais utilizados RegEx.

O artigo acima está em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!