我需要从此邮箱字符串中提取电子邮件地址。
我想到str_replace
,但显示名称和电子邮件地址不是静态的,所以我不知道如何使用正则表达式来做这件事。
示例:“My name <email@example.com>
”应生成“email@example.com
”。
有什么想法吗?
由于 Matthy
答案 0 :(得分:15)
您可以使用imap_rfc822_parse_adrlist
来解析该地址:
$addresses = imap_rfc822_parse_adrlist('My name <email@gmail.com>');
答案 1 :(得分:5)
以面值,以下将起作用:
preg_match('~<([^>]+)>~',$string,$match);
但我怀疑你需要比这更好的东西。有大量的“官方”电子邮件正则表达式模式,你应该更具体地说明匹配的上下文和规则。
答案 2 :(得分:1)
答案 3 :(得分:-1)
或查找正则表达式(preg_match)。
类似于:[^&lt;] &lt;([^&gt;] )&gt ;;
答案 4 :(得分:-1)
$s = 'My name <email@gmail.com>';
$s = substr(($s = substr($s, (strrpos($s, '<')+1))), 0, strrpos($s, '>'));
这基本上做的是提取最后一个&之间的所有内容。和最后一个&gt;