当我在一个示例中遇到这个时,我只是在浏览perldocs(http://perldoc.perl.org/perlre.html#Regular-Expressions - 请参阅Capture Groups示例)
"aa" =~ /${a}/; # True
"aa" =~ /${b}/; # True
"aa0" =~ /${a}0/; # False!
"aa0" =~ /${b}0/; # True
"aa\x08" =~ /${a}0/; # True!
"aa\x08" =~ /${b}0/; # False
我找不到任何关于语法含义的文档。
那么在这种情况下正则表达式/ $ {a} /是什么意思?
答案 0 :(得分:3)
需要大括号来消除$a
$a0
的歧义。请注意,标记生成器是贪婪的,因此变量名称可能是最长序列。如果在变量插值中跟随另一个字母或数字,则需要${name}
语法。
答案 1 :(得分:2)
$foo = 'house';
'housecat' =~ /$foo/; # matches
'cathouse' =~ /cat$foo/; # matches
'housecat' =~ /${foo}cat/; # matches
同样在你给出的链接中,有一个$ a和$ b的定义,但是你忘了在这里复制。