用perl写email验证时遇到的问题

Email匹配描述:

第一部分:一个或多个(以一个或多个字母开头,后面是0个或多个数字减号、下划线)

第二部分:@

第三部分:一个或多个字母,后面是0个或多个减号、下划线

第四部分:一个或多个(以点号开头,后面跟随一个或多个字母)

表述貌似不太清晰吧,哈哈

#!/usr/bin/perl

$email[0] = "test\@vip.sina.com";
$email[1] = "ab\@sidf.xcom";
$email[2] = "asdfkjskjskkjl";
$email[3] = "a\@a.";
print join("\t",@email);
print "\n";
for ($i=0;$i<$#email+1;$i++) {
if ($email[$i] =~ /^([a-z]+([0-9]+)?[-_]*)@+([a-z]+[-_]*)(\.[a-z]+)+$/i) {
print "Welecome! ".$&;
}else{
print "Sorry, ",$email[$i]," is a Invalide Email!";
}
print "\n";
}


注意的问题:
1、@为perl关键字,所以用例中必须\@处理。
2、$#email为数组email的长度。
3、对于$和@可以简单理解为单一和全部。$email[$i]即为唯一的值,@email即为所有数组。
阅读更多
换一批

没有更多推荐了,返回首页