+ -
当前位置:首页 → 问答吧 → 问个有关perl贪婪匹配的问题

问个有关perl贪婪匹配的问题

时间:2010-09-07

来源:互联网

以下测试代码:
my $sStr=' just a test can you find me ';
if ($sStr =~ /\s*([a-zA-Z]+)\s*/i) {
        print "matched [$1]\n";
}
my $sStr = 'abcdefgabcdefg';
if ($sStr =~ /abc(.+)g/i) {
        print "matched [$1]\n";
}

结果为
matched [just]
matched [defgabcdef]

按我对新版PERL的资料查询,默认应该是贪婪匹配,非贪婪使用?标示,但为什么第一个输出没有按贪婪原则尽可能匹配到结束呢?

作者: qiuf   发布时间: 2010-09-07

[a-zA-z]匹配不了‘ ’啊,所以只能到‘t’。
还有[a-zA-Z]+模式i,重复了吧

作者: Mr-Summer   发布时间: 2010-09-07