Expresión regular para separar formato Email en PHP

En este caso estamos usando el formato de Outlook que encapsula los correos con los signos < y >, pero con un pequeño cambio se podría adaptar a otros gestores de correos.

El formato de Email de Outlook tiene el siguiente formato:

Iván <ejemplo@gmail.com>

y con nuestra función queremos extraer/obtener el nombre del propietario del correo “Iván” y el correo electrónico “ejemplo@gmail.com”.

Vamos a usar para ello la función preg_match de PHP, los parámetros que se le pasan son los siguientes:

$exRegular: Expresión regular.
$email: Nombre del propietario y dirección del email.
$resultado: Es el resultado de la función.

*Si al parámetro $email únicamente se le pasa la dirección del correo (ejemplo@gmail.com) te devuelve únicamente el correo obviando el nombre del propietario.

<?php
$exRegular = "/(.*?)\s*<?([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})>?/i";
 
preg_match($exRegular, $email, $resultado);
 
//el resultado sería: Iván <ejemplo@gmail.com>
$nombreCompleto = $resultado[0]; 
 
//el resultado sería: Iván    				
$descripcion = $resultado[1];
 
//el resultado sería: ejemplo@gmail.com
$email = $resultado[2];
?>

Iván Martínez

Ingeniero Informático apasionado por el mundo del desarrollo WEB. Me gusta caminar por este mundo lleno de tecnologías y día a día aprender cosas nuevas como el doctor Frankenstein ¡dadme cosas para experimentar!

Deja un comentario

Tu dirección de correo electrónico no será publicada.