0
respostas

Agrupando informações dos pacientes

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!")

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR