Cómo extraer direcciones de correo electrónico

A veces habrás exportado datos de tu sitio web o de tu software empresarial
que contienen información sobre pedidos o datos de clientes.
Quizás solo necesitaras la dirección de correo electrónico y la fecha del pedido.

Una forma de hacerlo es importar todos los datos a Excel, eliminar las columnas que no se necesiten
y exportar las restantes.

This may not work well if the email field also contains the email address description,
for example: “Dave Martin <davemartin@bogusemail.com>”.

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 utilizando «regex»

Una expresión regular (abreviada como «regex» o «regexp»),
es una secuencia de caracteres que especifica un patrón de coincidencia en un texto.

Un caso muy sencillo es localizar una palabra escrita de dos formas diferentes en un editor de texto,
la expresión regular serializar coincide tanto con «serialise» como con «serialize».

Una situación más compleja es la sintaxis para identificar elementos en el texto


Tutorial sobre expresiones regulares (Regex)

Vídeo recomendado de YouTube:
«38 minutos muy bien empleados, merece totalmente la pena »:

Cómo buscar 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 compatibles
en editores de texto avanzados como Notepad++ o Atom.

También hay herramientas gratuitas en línea disponibles, una de ellas es:
https://regexr.com: un servicio en línea para aprender, crear y probar expresiones regulares.

Explicación de la interfaz web:
«Expresión» es el campo que contiene la sintaxis de expresiones regulares.
«Texto» es el contenido que deseas analizar.
En «Herramientas > Lista» se mostrarán los resultados de la extracción.


Ejemplo 1: para 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.com

Herramientas > Lista:
$&\n

Resultado:

davemartin@bogusemail.com
charlesharris@bogusemail.com
laurawilliams@bogusemail.com

Ejemplo 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>","",02.01.2024, ,5379,
"consectetur adipiscing elit","""Mesa, Rene <rmesa@bogusemail.com>""","",04.01.2024, ,20826,
"sed do eiusmod tempor incididunt","Antonio Bugan <antonio@bogusemail.com>","",04.01.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.2024

Guía rápida para el uso de expresiones regulares
.       - Any Character Except New Line
\d      - Digit (0-9)
\D      - Not a Digit (0-9)
\w      - Word Character (a-z, A-Z, 0-9, _)
\W      - Not a Word Character
\s      - Whitespace (space, tab, newline)
\S      - Not Whitespace (space, tab, newline)

\b      - Word Boundary
\B      - Not a Word Boundary
^       - Beginning of a String
$       - End of a String

[]      - Matches Characters in brackets
[^ ]    - Matches Characters NOT in brackets
|       - Either Or
( )     - Group

Quantifiers:
*       - 0 or More
+       - 1 or More
?       - 0 or One
{3}     - Exact Number
{3,4}   - Range of Numbers (Minimum, Maximum)

fuente: fragmentos de código de GitHub


volver al inicio