Php 需要正则表达式的帮助
我想将邮件程序解析为字符串,该字符串可以由以下示例组成,这些示例用逗号(,)分隔:Php 需要正则表达式的帮助,php,regex,Php,Regex,我想将邮件程序解析为字符串,该字符串可以由以下示例组成,这些示例用逗号(,)分隔: 名字 “名字” email@example.com 我想为每个元素创建一个数组,每个元素有两个子项:[name]和[email] 多年来,我一直在努力使用regexp。有人能帮我吗?如果您启用了imap扩展,它可能非常简单: var_dump(imap_rfc822_parse_adrlist('First name <email@example.com>, "first name" <
名字
“名字”
email@example.com
我想为每个元素创建一个数组,每个元素有两个子项:[name]和[email]
多年来,我一直在努力使用regexp。有人能帮我吗?如果您启用了imap扩展,它可能非常简单:
var_dump(imap_rfc822_parse_adrlist('First name <email@example.com>,
"first name" <email@example.com>,
<email@example.com>,
email@example.com','_invalid_'));
为了简化regexp,您可以在循环中逐行分析它,然后每个regexp看起来像/([“\w\s]+)?\s?用于解析符合rfc822规范的电子邮件地址的正则表达式有点复杂+1@Buggabillregexp实际上不需要验证电子邮件地址,只需在主字符串中找到它,这并不特别困难
var_dump(imap_rfc822_parse_adrlist('First name <email@example.com>,
"first name" <email@example.com>,
<email@example.com>,
email@example.com','_invalid_'));
array(4) {
[0]=>
object(stdClass)#1 (3) {
["mailbox"]=>
string(5) "email"
["host"]=>
string(11) "example.com"
["personal"]=>
string(10) "First name"
}
[1]=>
object(stdClass)#2 (3) {
["mailbox"]=>
string(5) "email"
["host"]=>
string(11) "example.com"
["personal"]=>
string(10) "first name"
}
[2]=>
object(stdClass)#3 (2) {
["mailbox"]=>
string(5) "email"
["host"]=>
string(11) "example.com"
}
[3]=>
object(stdClass)#4 (2) {
["mailbox"]=>
string(5) "email"
["host"]=>
string(11) "example.com"
}
}