php正则表达式匹配模式

时间:2011-03-29 14:06:04

标签: php regex

如何从以下所有字符串案例中提取电子邮件部分:

"Robert Donhan" <bob@email.com>
Robert Donhan <bob@email.com>
"Robert Donhan" bob@email.com
Robert Donhan bob@email.com

由于

5 个答案:

答案 0 :(得分:1)

你可以试试这个正则表达式:

([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7})

无论如何,我建议这个网站:TXT2RE

答案 1 :(得分:1)

不完全正确,但以下正则表达式大部分都有效:

[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}  

使用不区分大小写的选项

Rubular Link

答案 2 :(得分:0)

我认为这应该有效:

/(^|\s)<?([a-zA-Z0-9._-]+@[a-zA-Z0-9]+\.[a-zA-Z.]{2,6})>?(\n|\r|\s|$)/

答案 3 :(得分:0)

实际上,你的正则表达式可以更简单。使用空格分割(爆炸)字符串,浏览每个项目,并检查“@”。然后删除所有<>

答案 4 :(得分:0)

如果您不一定需要正则表达式,可以使用imap_rfc822_parse_adrlistmailparse_rfc822_parse_addresses来获取地址和名称。