繁体   English   中英

从邮箱字符串获取电子邮件地址

[英]Get email address from mailbox string

我需要从这个邮箱字符串中提取电子邮件地址。 我想到str_replace但显示名称和电子邮件地址不是静态的,所以我不知道如何使用正则表达式来做到这一点。

示例:“ My name <email@example.com> ”应生成“ email@example.com ”。

有任何想法吗?

谢谢Matthy

您可以使用imap_rfc822_parse_adrlist来解析该地址:

$addresses = imap_rfc822_parse_adrlist('My name <email@gmail.com>');

面值,以下将起作用:

preg_match('~<([^>]+)>~',$string,$match);

但我怀疑你需要比这更好的东西。 有大量的“官方”电子邮件正则表达式模式,你应该更具体地说明匹配的上下文和规则。

如果你知道字符串被<>包围,你可以根据它分开。

这假设您将始终只有一对<>围绕该字符串,并且它不会确保结果是电子邮件模式。

否则,您可以随时阅读电子邮件正则表达式模式

或查找正则表达式(preg_match)。

类似于:[^ <] <([^>] )>;

我来自一个时间,从正规用途的项目到昂贵的简单字符串提取。

$s = 'My name <email@gmail.com>';
$s = substr(($s = substr($s, (strpos($s, '<')+1))), 0, strrpos($s, '>'));

结果是

email@gmail.com

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM