1
resposta

[Projeto] Minha solução (provavelmente não é boa)

import re

first_name = input("Insira o seu nome: ").strip()
surname = input("Insira o seu último sobrenome: ").strip()
year = input("Insira a sua data de nascimento: ").strip()

template_names = r'\b[A-Z][a-z]*'
template_dates = r'\d{4}'

res_fn = re.fullmatch(template_names, first_name)
res_snm = re.fullmatch(template_names, surname)
res_year = re.fullmatch(template_dates, year)

if res_fn and res_snm and res_year:
    print(f"Nome: {first_name}")
    print(f"Sobrenome: {surname}")
    print(f"Ano: {year}")
else:
    print("Tem algum erro na formação das coisas. Cheque tudo e tente novamente.")

Acabei fazendo dessa forma. Provavelmente tem jeitos mais eficientes de fazer isso, mas foi o que eu encontrei para poder dar a mensagem de alerta no else ali em baixo.

1 resposta

Oi, Estudante! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Achei interessante a forma como você usou re.fullmatch para validar os campos, deixando claro quando os dados não seguem o padrão esperado. Essa lógica já é um ótimo caminho para estruturar a validação.

Uma dica interessante para o futuro é usar re.match em casos onde você só precisa validar o começo de uma string.


import re

texto = "Python2025"
padrao = r"[A-Za-z]+"

resultado = re.match(padrao, texto)
print(resultado.group())

Esse código verifica apenas o início da string e retorna Python.

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