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

[Dúvida] Qual formato é melhor para fazer no codigo?

esse seria o código padrão:
import re

dados = input("Digite o nome completo e o ano de nascimento do paciente: ")
padrao = r'(\w+) (\w+) - (\d{4})'

resultado = re.search(padrao, dados)

if resultado:
primeiro_nome = resultado.group(1)
sobrenome = resultado.group(2)
ano_nascimento = resultado.group(3)

print(f"Primeiro Nome: {primeiro_nome}")
print(f"Sobrenome: {sobrenome}")
print(f"Ano de Nascimento: {ano_nascimento}")

else:
print("Formato inválido!")
______________________________________________
mas também da pra fazer dessa forma sem o padrão no código:

import re

print('''\nDigite suas informações abaixo nesse padrão:
PrimeiroNome SobreNome - xx/xx/xxxx (Data de nascimento)''')

informacoes = input('Digite suas informações aqui: ')

if re.fullmatch(r'[a-zA-Z]+ [a-zA-Z]+ - \d{2}/\d{2}/\d{4}', informacoes):
print('Formato válido')
else:
print('Formato inválido!')
________________________________________________________________
ou seja quero saber qual formarto é melhor para se fazer, fazendo com o padrao no codigo ou sem ele

1 resposta
solução!

Oi Ryan! Os dois formatos estão corretos e funcionam, a diferença está mais no objetivo do código. Quando você usa o padrão separado com grupos, além de validar a entrada, você consegue extrair as informações (primeiro nome, sobrenome e ano de nascimento) para usar depois no programa, o que é mais comum em situações reais. Já usando o re.fullmatch direto, a ideia é apenas verificar se o texto segue o formato esperado, sem a necessidade de separar os dados, deixando o código mais simples e direto. Então, se for só validação, o segundo formato já resolve, se precisar trabalhar com as informações depois, o primeiro acaba sendo a melhor escolha.