Minha dúvida é a respeito do código que está como resposta do exercício.
padrao = r'(\w+) (\w+) - (\d{4})'
Ao meu ver, essa não é a melhor solução para o problema, visto que se o nome fosse: 1995João Pedro599, ele retornaria 1995João Pedro 599. Formatos incompatívels com nomes
Meu código:
import re
print("Example: Monalisa Silva - 1995")
pacient_name = str(input("Insert your full name and age: "))
first_name_pattern = r"[A-Za-z]*"
last_name_pattern = r"\s[A-Za-z]+" # \s corresponde a qualquer espaço em branco.
age_pattern = r"\d{4}"
first_name_result = re.search(first_name_pattern,pacient_name,re.IGNORECASE)
last_name_result = re.findall(last_name_pattern,pacient_name,re.IGNORECASE)
age_result = re.search(age_pattern,pacient_name)
if first_name_result and last_name_result and age_result:
print(f"First name: {first_name_result.group()}")
for last_name in last_name_result:
print(f"Last name: {last_name}".title())
print(f"Age: {age_result.group()}")
else:
print(f"{pacient_name} is not valid!")