1
resposta

Agrupando informações dos pacientes

import re

def extrair_nome_e_ano(dados):
    padrao = r"^(\w+)\s+(\w+)\s*-\s*(\d{4})$"
    correspondencia = re.match(padrao, dados)
    
    if correspondencia:
        primeiro_nome = correspondencia.group(1)
        sobrenome = correspondencia.group(2)
        ano_nascimento = correspondencia.group(3)
        return primeiro_nome, sobrenome, ano_nascimento
    else:
        return None, None, None

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

nome, sobrenome, ano = extrair_nome_e_ano(entrada)

if nome:
    print(f"Primeiro Nome: {nome}")
    print(f"Sobrenome: {sobrenome}")
    print(f"Ano de Nascimento: {ano}")
else:
    print("Formato inválido!")
1 resposta

Oi, Vitor! Como vai?

Agradeço por compartilhar.

Gostei bastante da forma como você utilizou re.match com um padrão bem estruturado para capturar nome, sobrenome e ano. A separação dos grupos com group() ficou clara e organizada, facilitando muito a leitura e manutenção do código.

Uma dica interessante para o futuro é usar o método strip() antes de aplicar o regex, para evitar problemas com espaços extras na entrada.


import re

entrada = input("Digite os dados: ").strip()
padrao = r"(\w+)\s+(\w+)\s*-\s*(\d{4})"

resultado = re.search(padrao, entrada)

if resultado:
    print(resultado.group(1))

Esse código remove espaços no inicio e no fim da string com strip(), evitando falhas na correspondencia do padrão.

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