from
在电子邮件标题中采用以下四种格式的参数:
From: Jon Doe <jon.doe@a.validdomain.com>
From: "Jon Doe" <jon.doe@a.validdomain.com>
From: <jon.doe@a.validdomain.com>
From: jon.doe@a.validdomain.com
有没有人制作了一个正则表达式,可以匹配在 preg_match 中使用的电子邮件地址?我已经尝试了一些,但<
正在>
赶上他们
var_dump(imap_rfc822_parse_adrlist($string));
甚至:
$headers = imap_rfc822_parse_headers("From: Jon Doe <jon.doe@a.validdomain.com>");
$from_email = $headers->from[0]->mailbox.'@'.$headers->from[0]->host;
您正在寻找的正则表达式是
^From:.*?<?(\S+@\S+?)>?\s*$
This will match the whole thing in any of the 4 cases
如果您只想匹配电子邮件,它会被一次又一次地询问......只需搜索正则表达式电子邮件
电子邮件验证将包括任何带有 + 号或 . 在电子邮件中以及基础知识看起来像
\b[!#\$%&'\*\+\-/=\?\^_`{\|}~a-zA-Z0-9][!#\$%&'\*\+\-/=\?\^_`{\|}~a-zA-Z0-9\.]*[!#\$%&'\*\+\-/=\?\^_`{\|}~a-zA-Z0-9]@[a-zA-Z0-9\-][a-zA-Z0-9\-\.]+[a-zA-Z0-9\-]\b
This is what I use.
试试正则表达式([^<>\s]+)>?$