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:
-
Importa el módulo re
:
Se utiliza para trabajar con expresiones regulares.
-
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.