1
resposta

Solução que cheguei

import re

complete_data = input("Type your complete name and year of birth (ex: João Silva - 1990): ")
pattern = r"(\w*)\s(\w*)\s\-\s(\d{4})"

result = re.findall(pattern, complete_data)

if result: 
     print(f"""First name: {result[0][0]}\nLast name: {result[0][1]} \nYear of Birth: {result[0][2]}""")
else:
      print("Invalid format")

Achei regex bem difícil e confuso.
Até sugiro ter um aprofundamento mais da prática no vídeo/texto.

Obs: Não consegui colocar com indentação aqui

1 resposta

Bom dia, Carlos! Tudo bem?

Fique tranquilo, regex realmente costuma causar essa sensação de confusão no início. É uma ferramenta poderosa, mas a sintaxe compacta pode assustar. A prática vai tornando tudo mais claro e natural, o importante é ir aos poucos, sem se cobrar dominar tudo de uma vez.

Se você testar pequenas partes de regex em exemplos práticos, seu cérebro vai acostumar naturalmente com a linguagem dela. Olha só um passo a passo prático para treinar:

  1. Comece simples

    • Teste \d em uma string como "123abc". Vai encontrar apenas os números.
    • Teste \w em "João_123". Vai encontrar letras, números e o underline.
  2. Quantificadores

    • \d{4} → exatamente 4 dígitos (bom para ano).
    • \d+ → um ou mais dígitos (serve para números de qualquer tamanho).
    • \w+ → uma palavra.
  3. Grupos de captura

    • Parênteses () servem para “pegar” partes da string.
    • Exemplo: (\w+)\s(\w+) em "Maria Silva" → grupo 1 = "Maria", grupo 2 = "Silva".
  4. Testes interativos

    • Use sites como o regex101.com para brincar e ver o que cada parte pega.
    • Vá montando de pedacinho em pedacinho: primeiro pega o nome, depois adiciona o espaço, depois o sobrenome, e só no final o ano.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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