Cómo extraer direcciones de correo electrónico
En ocasiones, has exportado datos de tu sitio web o software empresarial
que contienen información de pedidos o detalles de clientes.
Es posible que solo necesitaras la dirección de correo electrónico y la fecha del pedido.
Una opción es importar todos los datos a Excel, eliminar las columnas no deseadas
y exportar las restantes.
Esto puede no funcionar bien si el campo de correo electrónico también contiene la descripción de la dirección de correo electrónico,
por ejemplo: “Dave Martin
Puede resultar engorroso si tienes que repetir la tarea varias veces
o si tienes que explicar todos los pasos a otra persona.
Extrae los datos deseados usando “regex”
Una expresión regular (abreviada como "regex" o "regexp")
es una secuencia de caracteres que especifica un patrón coincidente en un texto.
Un caso muy sencillo es localizar una palabra escrita de dos maneras diferentes en un editor de texto,
la expresión regular seriali[sz]e coincide tanto con "serialise" como con "serialize".
Una situación más compleja es la sintaxis para identificar en el texto
-
una dirección de correo electrónico:
[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+
fuente: stackoverflow - extracción de correo electrónico de cadenas mediante expresiones regulares -
una fecha:
\d{4}-\d{2}-\d{1,2}
fuente: stackoverflow - expresión regular para extraer fecha de una cadena
Tutorial de expresiones regulares (Regex)
Vídeo recomendado de YouTube:
“38 minutos bien invertidos, merece totalmente la pena” .
Cómo encontrar cualquier patrón de texto
(a partir del minuto 25 se explica la sintaxis para extraer direcciones de correo electrónico).
Guía rápida para el uso de expresiones regulares
Herramienta en línea RegExr
Las expresiones regulares suelen ser aceptadas
en editores de texto avanzados como Notepad++ o Atom.
También existen herramientas online gratuitas, una de ellas es:
https://regexr.com , un servicio online para aprender, crear y probar expresiones regulares.
Explicación de la interfaz web:
«Expresión» es el campo que contiene la sintaxis de la expresión regular.
«Texto» es el contenido que desea analizar.
En «Herramientas > Lista» se mostrarán los resultados de la extracción.
Ejemplo 1: extraer solo la dirección de correo electrónico
Expresión:
[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+
Texto:
Dave Martin 615-555-7164 173 Main St., Springfield RI 55924 davemartin@bogusemail.com Charles Harris 800-555-5669 969 High St., Atlantis VA 34075 charlesharris@bogusemail.com Eric Williams 560-555-5153 806 1st St., Faketown AK 86847 laurawilliams@bogusemail.comHerramientas > Lista:
$&\n
Resultado:
davemartin@bogusemail.com charlesharris@bogusemail.com laurawilliams@bogusemail.comEjemplo 2: para extraer la dirección de correo electrónico y la fecha
Expresión:
","(.*?)([a-zA-Z0-9_-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)(.*?)",".*",(\d{2}\.\d{2}\.\d{4})
Texto:
"lorem ipsum dolor sit amet",Robert Farrell<rmfarrell@bogusemail.com> ","",01.02.2024, ,5379, "consectetur adipiscing elit","""Mesa, René<rmesa@bogusemail.com> ""","",01.04.2024, ,20826, "sed do eiusmod tempor incididunt","Antonio Bugan<antonio@bogusemail.com> ","",01.04.2024, ,2856, "ut labore et dolore magna aliqua","Crawley Down Tennis Club<hello@bogusemail.com> ","",05.01.2024, ,4453,Herramientas > Lista:
$2,$4\n
Resultado:
rmfarrell@bogusemail.com,02.01.2024 rmesa@bogusemail.com,04.01.2024 antonio@bogusemail.com,04.01.2024 hello@bogusemail.com,05.01.2024Guía rápida para el uso de expresiones regulares
. - Cualquier carácter excepto nueva línea \d - Dígito (0-9) \D - No es un dígito (0-9) \w - Carácter de palabra (az, AZ, 0-9, _) \W - No es un carácter de palabra \s - Espacio en blanco (espacio, tabulación, nueva línea) \S - No es un espacio en blanco (espacio, tabulación, nueva línea) \b - Límite de palabra \B - No es un límite de palabra ^ - Inicio de una cadena $ - Fin de una cadena [] - Coincide con caracteres entre corchetes [^ ] - Coincide con caracteres que NO están entre corchetes | - O ( ) - Cuantificadores de grupo: * - 0 o más + - 1 o más ? - 0 o uno {3} - Número exacto {3,4} - Rango de números (mínimo, máximo)Fuente: fragmentos de código de GitHub