lookbehind 的匹配,要求为固定长度的模式,(?!=\s+) 中的 \s+ 是变长的,所以不符合要求 你可以指定几个空格,比如一个空格 (?!=\s)abc,或者两个空格 (?!=\s\s)abc ,依次类推 请参看 http://perldoc.perl.org/perlretut.html#Looking-ahead-and-looking-behind
2009/2/17 Michael Zeng <[email protected]> > 匹配前面不是空格的 abc > > my $str = " abc" ; > print "\a" if $str =~ /(?!=\s+)abc/ ; > > 怎么会匹配成功呢 ? > > > 另外: > print "\a" if $str =~ /(?<=\s+)abc/ ; > > 怎么出现编译错误: Variable length lookbehind not implemented in regex; marked by > <-- HERE in m/(?<=\s+)abc <-- HERE / at test_xiong.pl line 6. > > > -- > Yours Sincerely > Zeng Hong > > > > --~--~---------~--~----~------------~-------~--~----~ 您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。 要在此论坛发帖,请发电子邮件到 [email protected] 要退订此论坛,请发邮件至 [email protected] 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛 -~----------~----~----~----~------~----~------~--~---
