¿Cómo hacer un extractor de correo electrónico en Python?

En este artículo, veremos cómo extraer todos los correos electrónicos válidos en un texto usando python y regex. 

  • Una expresión regular abreviada como regex o regexp (también llamada expresión racional) es una string de caracteres que describen un patrón de búsqueda. Por lo general, dichos estilos son utilizados por algoritmos de búsqueda de strings para operaciones de «ubicación» o «ubicación y reemplazo» en strings, o para ingresar la validación.
  • Es un método desarrollado en la tecnología informática teórica y la teoría del lenguaje natural.
  • El módulo re en python brinda soporte completo para expresiones regulares similares a Perl en Python. Ofrece un conjunto de funciones que nos permite buscar una string para una coincidencia.
  • La función re.findall() definida en el módulo re python acepta dos parámetros y devuelve una lista de todas las strings coincidentes encontradas.

Sintaxis: re.findall(regex, string)

Parámetros: 

  • La expresión regular es la expresión regular que se compone de varios símbolos predefinidos que se utilizan para buscar el patrón que estamos buscando.
  • La string es la string original en la que vamos a realizar la acción de búsqueda.

Después de importar el módulo necesario, llamaremos al método findall() definido en el módulo re para encontrar todas las strings que coincidan con la expresión regular pasada como parámetro.

La expresión regular se puede dividir en tres partes:

1. r”[A-Za-z0-9_%+-.]+”

Esta expresión busca una secuencia continua de caracteres que consiste en todos los alfabetos en mayúsculas definidos por AZ, letras en minúsculas az, todos los dígitos 0-9 y caracteres especiales como _%+-. . El ‘+’ se usa para agregar la segunda expresión regular a la primera.

2. r”@[A-Za-z0-9.-]+”

Esta expresión busca una secuencia continua de caracteres que consiste en todos los alfabetos en mayúscula definidos por AZ, alfabetos en minúsculas az, todos los dígitos 0-9 y caracteres especiales como ._. El ‘+’ se usa para agregar la segunda expresión regular a la primera.

3. r”\.[A-Za-z]{2,5}”

Esta expresión busca una secuencia continua de caracteres compuesta por todos los alfabetos en mayúsculas definidos por AZ, letras en minúsculas az tales que el tamaño de esta secuencia continua es entre 2-5 ambos inclusive.

Ejemplo 1: extraer correos electrónicos válidos de una string

Python3

# Raw text
text = "Duis info@geeksforgeeks.com convallis. Parturient montes nascetur ridiculus mus \
geeksforgeeks@rocks.xyz mauris. Odio eu feugiat pre@rsos_tium.index nibh ipsum consequat love@gfg.in \
pretium aenean pharetra magna ac placerat. Vitae justo eget magna fermentum iaculis eu non."
 
#import regex module
import re
 
#finding all valid emails using regex
reg = re.findall(r"[A-Za-z0-9_%+-.]+"
                 r"@[A-Za-z0-9.-]+"
                 r"\.[A-Za-z]{2,5}",text)
 
#printing all the valid emails found
print(reg)

Producción:

['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']

Ejemplo 2: extraer correos electrónicos válidos de un archivo de texto

Usando la función open(), abrimos el archivo requerido en modo «r», solo modo de lectura. Y para cada línea, eliminamos la línea para eliminar los espacios en blanco y los procesamos de manera similar al primer ejemplo.

Python3

#importing module
import re
 
with open('sample.txt','r') as file:
  for line in file:
    line = line.strip()
     
    # finding all valid emails
    reg = re.findall(r"[A-Za-z0-9_%+-.]+"
                      r"@[A-Za-z0-9.-]+ "
                      r"\.[A-Za-z]{2,5}",line)
 
#printing all the valid emails found
print(reg)

Producción:

['info@geeksforgeeks.com', 'geeksforgeeks@rocks.xyz', 'love@gfg.in']

Publicación traducida automáticamente

Artículo escrito por samrat2825 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *