如何使用perl从字符串中提取电子邮件地址?

时间:2010-07-18 16:30:38

标签: regex perl email

如何使用perl从字符串中提取电子邮件地址并将电子邮件地址放入变量中? 我的字符串看起来像

Ben Tailor <bentaylor@gmail.com>
barbara@gmail.com, barbara2@gmail.com, Ben Tailor <bentaylor@gmail.com>

我试过这个

$string ="Ben Tailor <bentaylor@gmail.com>";
$string =~ /\b([^\s]+@[^\s]+)\b/g ;
print $string;

Out out xas:

Ben Tailor <bentaylor@gmail.com>

有人有想法吗?

使用

修复
Email::Valid->address($string);

THX

2 个答案:

答案 0 :(得分:8)

从cpan

查看Email :: Address或Email :: AddressParser
 my @addrs = Email::Address->parse(
    q[me@local, Tony <me@local>, "Tony" <me@local>]
  );

这将返回它在输入字符串中找到的Email :: Address对象列表。

答案 1 :(得分:2)

https://metacpan.org/pod/Email::Valid开始。它似乎工作得很好。