1
resposta

Resposta

import re

nome_paciente = input("Digite o nome completo e o ano de nascimento do paciente: ")

padrao = r'(?P<nome>[A-Za-z\s]+) (?P<ano>\d{4})'
resultado = re.match(padrao, nome_paciente)

if resultado:
    print("Saída esperada:")
    print("Primeiro Nome:", resultado.group("nome").split()[0])
    print("Sobrenome:", resultado.group("nome").split()[-1])
    print("Ano de Nascimento:", resultado.group("ano"))
else:
    print("Entrada inválida.")
1 resposta

Olá, Wallace, como vai?

Você fez um ótimo trabalho utilizando expressões regulares para separar as informações do paciente. É interessante ver como você aplicou o re.match junto com grupos nomeados para capturar o nome e o ano, isso demonstra que você está assimilando os conceitos de regex.

Há apenas um pequeno ajuste a ser considerado no padrão da expressão regular. O formato do exercício inclui um hífen separando o nome do ano, ou seja, "PrimeiroNome Sobrenome - Ano". No seu regex atual, o hífen não está contemplado, então entradas no formato proposto podem não ser reconhecidas. Você pode incluir o hífen e espaços ao redor dele no padrão, como em r'(?P<nome>[A-Za-z\s]+) - (?P<ano>\d{4})'.

Continue praticando com diferentes entradas, testando nomes compostos ou múltiplos sobrenomes, isso ajuda a fortalecer a compreensão de regex e manipulação de strings.

O fórum está à disposição para esclarecer qualquer outra dúvida que surgir.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!