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

3
如何使用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;

输出结果为:

Ben Tailor <bentaylor@gmail.com>

有人有想法吗?

使用以下方法进行修复

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

Thx


它会输出与输入字符串相同的内容,因为你只是对其执行了一个正则表达式匹配,然后再次输出该字符串。您没有使用捕获部分$1或进行替换操作s///g; - dalton
2个回答

8

请查看cpan中的Email::Address或Email::AddressParser

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

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

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接