1
resposta

Minha solução

import re
import os

os.system("clear")
os.system("clear")

padrao_nome_sobre_data = pnsd = r"([A-ZÀ-ß][a-zà-ÿ]*)\s([A-ZÀ-ß][a-zà-ÿ]*)\s?-\s?((19|20)\d{2})"

nome_sobre__data = nsd = input("\nInsira seu nome, primeiro sobrenome e ano de nascimento (Formato: Carlos Augusto - 1985)\n\n").strip()

print()

resultado = re.fullmatch(pnsd, nsd)

if resultado:
    print("OK")
    print(f"\nPrimeiro nome: {resultado.group(1)}")
    print(f"Primeiro sobrenome: {resultado.group(2)}")
    print(f"Ano de nascimento: {resultado.group(3)}")

else:
    print("Formato inválido")

print()
1 resposta

Oi, Paulo! Como vai?

Sua solução ficou bem organizada e clara. Importante como você utilizou o re.fullmatch para garantir que toda a string siga o padrão e também o cuidado ao tratar acentuação com [A-ZÀ-ß] e [a-zà-ÿ]. Isso mostra atenção aos detalhes do mundo real. Continue explorando esse tipo de validação, porque ela é muito útil no dia a dia.

Uma dica simples: você pode testar variações de entrada (como espaços extras ou nomes compostos) criando pequenos casos de teste no código. Faça isso criando uma lista de exemplos e iterando com um for, assim você valida seu regex de forma mais robusta.

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