¿Alguien tiene una idea de cómo hacer coincidir algo como
<t@t.com>Probé esta expresión regular
\<(.?*)\> pero esto también coincide con <sddsds> . Quiero que coincida donde dentro de <> hay un correo electrónico con el signo @ .
Puedes usar
<([^<>@]+@[^<>@]+)>Vea la demostración de expresiones regulares . Detalles :
< - un < carácter([^<>@]+@[^<>@]+) - Grupo 1: uno o más caracteres distintos de < , > y @ , un carácter @ y luego uno o más caracteres distintos de < , > y @> - un > carácter.Vea la demostración de PHP :
$str = "<t@t.com>\n<tatacom>\n<t@ata@com>"; $re = '/<([^<>@]+@[^<>@]+)>/'; if (preg_match_all($re, $str, $matches)) { print_r($matches[1]); } // => Array( [0] => t@t.com )Puedes usar esto:
$regex = '/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/'