Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Minha Solução

import re


def padronizar_info(info_paciente: str) -> None:
    padrao = r'(.+?) (\w+) - (\d{4})'
    saida = re.search(padrao, info_paciente)

    if saida:
        nome: str = saida.group(1)
        sobrenome: str = saida.group(2)
        ano_nascimento: str = saida.group(3)

        print(f"Primeiro Nome: {nome}")
        print(f"Sobrenome: {sobrenome}")
        print(f"Ano de Nascimento: {ano_nascimento}")
    else:
        print("Formato Inválido!")


if __name__ == "__main__":
    info_paciente = input(
        "Digite o nome completo e o ano de nascimento do paciente: ")

    padronizar_info(info_paciente)
    
1 resposta
solução!

Ei, Felipe! Tudo bem?

Seu uso do re.search está muito bem aplicado para extrair as informações com base no padrão definido. A organização da função e o uso de group() ajudam bastante na leitura e na manutenção do código.

Uma dica interessante para o futuro é usar re.fullmatch quando quiser garantir que toda a string corresponde ao padrão, não apenas uma parte dela. Isso pode evitar interpretações parciais indesejadas.


import re

texto = "Ana Silva - 1990"
padrao = r".+? \w+ - \d{4}"

resultado = re.fullmatch(padrao, texto)
print(resultado)

Esse código usa re.fullmatch para validar se toda a string segue o padrão esperado.

Conteúdos relacionados
Alura

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