2
respostas

re.error: unbalanced parenthesis

Ola, estou tentando inserir um If no meu codigo, para poder criar dois padroes diferentes, um para telefones fixo e outro para telefones celular. Porem esta apresentando o seguinte erro: "re.error: unbalanced parenthesis at position 22"

import re

telefone = "551141938632"

padrao_celular = "([0-9]{2,3})([0-9]){2})([0-9]{5})([0-9]{4})"
padrao_fixo = "([0-9]{2,3})([0-9]){2})([0-9]{4,5})([0-9]{4})"

if len(telefone) == 12:
    padrao = padrao_fixo
elif len(telefone) == 13:
    padrao = padrao_celular
else:
    raise ValueError("Telefone incompleto")

resposta = re.findall(padrao, telefone)
print(resposta)
2 respostas

Felipe, nas linhas de telefone celular e fixo: ([0-9]){2}) voce fechou um parêntesis que não foi aberto. Tente substituir esses trechos por

padrao_celular = "([0-9]{2,3})([0-9]{2})([0-9]{5})([0-9]{4})" padrao_fixo = "([0-9]{2,3})([0-9]{2})([0-9]{4,5})([0-9]{4})"

Puts, nao tinha visto, passou despercebido o erro. Muito obrigado!