perl 语句if ($a =~ m/a?/)的意思是神马??求调教~~~~~

如题所述

if($a =~ m/a?/) 的意思是如果变量$a 中的值匹配到了0个或0个以上a就执行后续语句。
其实,这个if 语句相当于 if(1) 。他并不会去执行else 部分的语句。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-08
要是没记错应该是模式匹配a出现零次或一次追问

# !/usr/bin/perl
$a = "aaaaaaab";
if ($a =~ m/a?/)
{
print"Yes!!!! ---- $a\n";
}else{
print"NOOOO!!! ------- $a\n";
}
print"<-------------------\n";
输出为
Yes!!!! ---- aaaaaaab
<-------------------

第2个回答  2013-04-05
如果$a里面包含aa或者aaa或者aaaa等等的字符串,则条件为假。追问

# !/usr/bin/perl
$a = "aaabrcdbr";
if ($a =~ m/a?/)
{
print"Yes!!!! ---- $a\n";
}else{
print"NOOOO!!! ------- $a\n";
}
print"<-------------------\n";

这个的输出是Yes!!!。怎么解释呀?

第3个回答  2013-04-05
a后面的?号是惰性匹配符,表示a后面可以有很多a
相似回答