【发布时间】:2013-03-30 05:20:48
【问题描述】:
我一直在搜索这个网站和其他网站,以找到完成我需要做的事情的最佳方式,但无济于事。基本上我有一个包含一些姓名和电子邮件地址的文本文件。每个姓名和电子邮件地址都在自己的行中。我需要获取电子邮件地址并将它们打印到另一个文本文件中。到目前为止,我能够打印的只是“未找到电子邮件地址”消息。有什么想法吗?谢谢!!
#!/usr/bin/perl
open(IN, "<contacts.txt") || die("file not found");
#chooses the file to read
open(OUT, ">emailaddresses.txt");
#prints file
$none = "No emails found!";
$line = <IN>;
for ($line)
{
if ($line =~ /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/g)
{
print (OUT $line);
}
else
{
print (OUT $none);
}
}
close(IN);
close(OUT);
【问题讨论】:
-
我们可以看看一些示例输入吗?
-
您使用的正则表达式假定电子邮件地址只使用大写字母。那是对的吗?此外,尝试用正则表达式匹配电子邮件地址几乎是徒劳的。请参阅Mail::RFC822::Address 了解更多信息。
-
您只遍历文件的一行...
标签: perl