我原以为它会打印
如果把星号替换为加号,它的表现就符合我的期望了。难道加号和星号都应该是贪婪的吗?
添加:谢谢大家在几秒钟内指出(似乎如此!)“b *”匹配空字符串,其第一个出现在字符串开始之前。因此,贪婪性根本不是问题。它在甚至到达第一个'b'之前就匹配了空字符串。
"[b]"
,但它实际打印的是"[]"
:$x = "abc";
$x =~ /(b*)/;
print "[$1]";
如果把星号替换为加号,它的表现就符合我的期望了。难道加号和星号都应该是贪婪的吗?
添加:谢谢大家在几秒钟内指出(似乎如此!)“b *”匹配空字符串,其第一个出现在字符串开始之前。因此,贪婪性根本不是问题。它在甚至到达第一个'b'之前就匹配了空字符串。