sorry 我写错了 应该是 print "\a" if $str =~ /(?<!\s+)abc/ ; \s+ 是错误的,我知道了
?= 与 ?! look ahead ?<= 与 ?<! look behind On 2/17/09, Michael Zeng <[email protected]> wrote: > > thanks > > On 2/17/09, cnhack TNT <[email protected]> wrote: >> >> 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 >>> >>> >>> > > > -- > Yours Sincerely > Zeng Hong -- Yours Sincerely Zeng Hong --~--~---------~--~----~------------~-------~--~----~ 您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。 要在此论坛发帖,请发电子邮件到 [email protected] 要退订此论坛,请发邮件至 [email protected] 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛 -~----------~----~----~----~------~----~------~--~---
