【发布时间】:2014-01-31 04:59:04
【问题描述】:
我有一个 perl 脚本-
#!/usr/bin/perl;
my $email = '[a-zA-Z0-9._]+@[a-zA-Z0-9._]+.[a-zA-Z0-9._]{2,4}';
open(FILE,'emails');
while (<FILE>) {
my $emails_not_found = 1;
if ( m/$email/ ) {
print($_);
my $emails_not_found = 0;
}
if ( $emails_not_found ) {
print "no emails\n";
}
}
close FILE;
文件emails是:
sdfasd@asd
asdf
所以,如您所见,脚本不会将正则表达式与任何行匹配。但是,它会输出这个-
no emails
no emails
如果它根本不匹配正则表达式模式,我希望它一次输出“无电子邮件”。如果它只匹配正则表达式模式一次,它将打印该行并为另一行输出“无电子邮件” line :( 我只是希望它只输出带有电子邮件的行,或者输出 1 行显示“没有电子邮件”。提前致谢。
【问题讨论】:
-
为什么要使用不检查有效电子邮件地址的正则表达式检查电子邮件地址? :-)