1 usuario conectado

Extraer correos electrónicos. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada extraer_correos_electronicos que tome una cadena de texto como entrada y devuelva una lista de todas las direcciones de correo electrónico encontradas en el texto.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Extraer correos electrónicos

📋 Copiar código


import re

def extraer_correos_electronicos(texto):
  """
  Extrae todas las direcciones de correo electrónico de una cadena de texto.

  Args:
    texto: La cadena de texto de entrada.

  Returns:
    Una lista de todas las direcciones de correo electrónico encontradas.
  """
  patron_email = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
  correos = re.findall(patron_email, texto)
  return correos

# Ejemplos de uso
texto1 = "Mi correo es usuario@example.com y el de mi compañero es otro.usuario@subdominio.ejemplo.net."
resultado1 = extraer_correos_electronicos(texto1)
print(f"Correos en '{texto1}': {resultado1}")

texto2 = "Contacta con nosotros en info@miempresa.es o ventas123@otro-dominio.com."
resultado2 = extraer_correos_electronicos(texto2)
print(f"Correos en '{texto2}': {resultado2}")

texto3 = "Esto no tiene correos."
resultado3 = extraer_correos_electronicos(texto3)
print(f"Correos en '{texto3}': {resultado3}")

texto4 = "Correo inválido: @example.com o usuario@."
resultado4 = extraer_correos_electronicos(texto4)
print(f"Correos en '{texto4}': {resultado4}")

texto5 = "Dirección con números: user123@domain.info."
resultado5 = extraer_correos_electronicos(texto5)
print(f"Correos en '{texto5}': {resultado5}")

texto6 = ""
resultado6 = extraer_correos_electronicos(texto6)
print(f"Correos en '': {resultado6}")


Explicación del Código:

  1. Importa el módulo re: Se utiliza para trabajar con expresiones regulares.

  2. Función extraer_correos_electronicos(texto):

    • patron_email = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}": Define una expresión regular para buscar direcciones de correo electrónico. Este patrón busca:
      • Uno o más caracteres alfanuméricos, puntos, guiones bajos, porcentajes, signos más o menos ([a-zA-Z0-9._%+-]+).
      • Seguidos por el símbolo @.
      • Seguidos por uno o más caracteres alfanuméricos, puntos o guiones ([a-zA-Z0-9.-]+).
      • Seguidos por un punto literal (\.).
      • Seguidos por dos o más letras ([a-zA-Z]{2,}) para el dominio de nivel superior (como "com", "es", "net", "org").
    • correos = re.findall(patron_email, texto): Utiliza re.findall() para encontrar todas las subcadenas en el texto que coinciden con el patron_email.
    • Devuelve la lista de correos electrónicos encontrados.

Ejemplos de Uso:

Los ejemplos muestran cómo la función extrae las direcciones de correo electrónico válidas que encuentra en diferentes textos. La expresión regular utilizada es una forma común de identificar correos electrónicos, aunque puede no cubrir todos los casos posibles.