from TelefonesBr import TelefonesBr
import re
telefone = "esse é o meu telefone 5561984400000 da minha esposa é 25561984631000 e não tenho mais outros"
telefone_objeto = TelefonesBr(telefone)
telefone_objeto.numeros_encontrados()
telefone_objeto.format_numero()
print(telefone_objeto)
classe
import re
class TelefonesBr:
def __init__(self, telefone):
if self.valida_telefone(telefone):
self.numero = telefone
else:
raise ValueError("Telefone não encontrado!")
def __str__(self):
return self.format_numero()
def numeros_encontrados(self):
padrao = "([0-9]{2,3})?([0-9]{2})([0-9]{5})([0-9]{4})" # "?" indica que aquele grupo não é obrigatorio
numeros_encontrados = re.findall(padrao, self.numero)
print(numeros_encontrados)
def valida_telefone(self, telefone):
padrao = "([0-9]{2,3})?([0-9]{2})([0-9]{5})([0-9]{4})" # "?" indica que aquele grupo não é obrigatorio
resposta = re.findall(padrao, telefone)
if resposta:
return True
else:
return False
def format_numero(self):
padrao = "([0-9]{2,3})?([0-9]{2})([0-9]{5})([0-9]{4})" # "?" indica que aquele grupo não é obrigatorio
resposta = re.search(padrao, self.numero)
numero_formatado = "+{}({}){}-{}".format(resposta.group(1), resposta.group(2), resposta.group(3), resposta.group(4))
return numero_formatado
identifiquei dois bugs no código do professor se voce colocar dois telefones ele so vai pegar o primeiro apesar de eu tentar consegui apenas exibir a lista com dois telefones, outra coisa é que aqui no DF usamos 5 dígitos depois do código de área e nessa formatação o numero fica de fora se usarmos três números para o código do país