Informática Dissertativa

Você recebeu uma string com várias informações misturadas: texto = "Nome: Ana, Email: ana@email.com, Nome: João, Email: joao@email.com". Use expressões regulares para extrair os nomes e e-mails.

Você recebeu uma string com várias informações misturadas: texto = "Nome: Ana, Email: ana@email.com, Nome: João, Email: joao@email.com". Use expressões regulares para extrair os nomes e e-mails.

Resolução completa

Explicação passo a passo

Resumo da resposta

Esta é uma questão prática de programação que exige a implementação de um script para processamento de texto e conversão de dados. A resolução envolve o uso de Expressões Regulares (Regex) para extração de padrões específicos de uma string e serialização dos dados para o formato JSON.

Resumo da Solução

A solução requer escrever um código (geralmente em Python) que utilize a biblioteca re para encontrar padrões de "Nome: X, Email: Y" no texto e armazenar esses pares em uma lista de dicionários, que será então salva em um arquivo .json.

Análise Detalhada

1. Entendendo o Problema

O objetivo é transformar um texto não estruturado (uma única string longa) em uma estrutura de dados organizada (JSON).

  • Entrada: "Nome: Ana, Email: ana@email.com, Nome: João, Email: joao@email.com"
  • Saída: Um arquivo contendo uma lista de objetos JSON.

2. Ferramenta Principal: Expressões Regulares (Regex)

Para extrair os dados corretamente, precisamos de um padrão que identifique onde começa o nome e onde termina o e-mail.

  • Padrão sugerido: r'Nome:\s(\w+), Email:\s([^@\s]+@[^@\s]+)'
  • Nome:: Busca literalmente a palavra "Nome".
  • \s*: Ignora espaços em branco opcionais.
  • (\w+): Captura o nome (grupo 1). \w representa palavras/algarismos.
  • Email:: Busca literalmente a palavra "Email".
  • ([^@\s]+@[^@\s]+): Captura o e-mail (grupo 2). Evita capturar caracteres que não pertençam ao e-mail.

3. Estrutura de Dados JSON

O JSON deve ser uma lista ([]) contendo dicionários ({}).
Cada dicionário representa uma pessoa:

[
  {
    "nome": "Ana",
    "email": "ana@email.com"
  },
  ...
]

4. Implementação em Python (Exemplo Prático)

Abaixo está o código que resolve a atividade proposta na imagem:

import re
import json

# Texto fornecido
texto = "Nome: Ana, Email: ana@email.com, Nome: João, Email: joao@email.com"

# Definição da Regex
# Explicação: Procura 'Nome:', pega letras até a virgula, procura 'Email:', pega até o fim ou proximo espaço
padrao = r'Nome:\s*(\w+), Email:\s*([\w@.]+)'

lista_dados = []

# Encontrar todas as ocorrências
for match in re.finditer(padrao, texto):
    nome = match.group(1)
    email = match.group(2)
    
    # Criar o dicionário individual
    registro = {"nome": nome, "email": email}
    lista_dados.append(registro)

# Salvar no arquivo JSON
with open('dados.json', 'w', encoding='utf-8') as f:
    json.dump(lista_dados, f, ensure_ascii=False, indent=4)

print("Dados extraídos e salvos com sucesso!")

Comparativo de Extração

EtapaAção RealizadaResultado Intermediário
InputString crua"Nome: Ana..."
RegexfinditerGera matches individuais
ProcessamentoLoop e Dicionário[{"nome":"Ana"...}, ...]
Outputjson.dumpArquivo .json formatado

Conclusão

A questão testa a habilidade de manipulação de strings e entendimento de formatos de troca de dados. O ponto crítico é criar a expressão regular correta que consiga separar dinamicamente o nome do e-mail sem quebrar se houver variações de espaçamento. A estrutura final deve respeitar estritamente as chaves "nome" e "email" conforme mostrado no enunciado.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Informática

Ver mais Informática resolvidas

Tem outra questão de Informática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.