我对正则表达式的功能感到困惑:
/\[\]$/
我尝试了一个简短的perl代码来理解它,但我仍然感到困惑。代码输出为Else
my $addr2 = {[{'firstname' => 'Nikhil', 'lastname' => 'Hegde'}, {'firstname' => 'Nikhil2', 'lastname' => 'Hegde2'}]};
if($addr2 =~ /\[\]$/) {
print "If\n";
}
else {
print "Else\n";
}
我认为/\[\]$/
会指出该值是否为数组,但似乎并非如此。然后我想,考虑到正则表达式中有$
,值可能以数组结束。所以,我试着代替:
my $addr2 = {[{'firstname' => 'Nikhil', 'lastname' => 'Hegde'}, {'firstname' => 'Nikhil2', 'lastname' => 'Hegde2'}],[]};
但这也不起作用。代码输出仍为Else
。
任何人都可以帮助我理解/\[\]$/
这个词吗?它有什么常规匹配?谢谢!
答案 0 :(得分:7)
正则表达式检查字符串的匹配。在您的情况下,您尝试匹配哈希引用。这就是您的代码进入else
块的原因。
现在,/\[\]$/
。它匹配任何在其末尾具有文字[]
的字符串。例如,字符串my $str = "just an example []"
将匹配此正则表达式。