Olá, boa noite!
Estou acompanhando o curso Python Brasil: validação de dados no padrão nacional e me surgiu uma dúvida. Tentei criar uma expressão regular para validar o CPF nos seguintes formatos:
XXX.XXX.XXX-XX - Com máscara XXXXXXXXXXX - Sem máscara
No entanto, ao aplicar o código abaixo obtenho o retorno CPF inválido
import re
cpf="49656939816"
padrao = re.compile("([0-9]{3}.[0-9]{3}.[0-9]{3}-[0-9]{2}) | ([0-9]{3}[0-9]{3}[0-9]{3}[0-9]{2})")
retorno = re.match(padrao, cpf)
if retorno:
print("CPF válido")
else:
print("CPF inválido")
Se eu aplico isoladamente apenas um dos padrões, o retorno passa a ser CPF válido.
cpf="49656939816"
padrao = re.compile("([0-9]{3}[0-9]{3}[0-9]{3}[0-9]{2})")
retorno = re.match(padrao, cpf)
if retorno:
print("CPF válido")
else:
print("CPF inválido")
O metacaractere "|" não deveria validar uma expressão ou outra ?
Poderiam me ajudar ?