一般的规则是,Perl正则表达式默认总会返回它能找到的"最左最长”匹配。像*和+这样表示重复次数的操作符,会吃进尽可能多的字符。这就是我们说的贪婪。
对于任意重复操作符(*,+,{m,n}),在后面加上问号(?)就会变为非贪婪,也称懒惰模式,尽可能匹配尽可能短的字串,一旦匹配成功立即结束。
#用懒惰模式匹配单引号间的内容 $_="This 'test' isn't sucessful?"; my ($str) = /('.*?')/;
懒惰模式唯一的问题就在于可能会导致效率降低。所以,如无必须,请不要随意使用懒惰模式。