负面的lookbehind不适用于FileLocatorPro正则表达式

时间:2017-11-28 07:54:23

标签: regex boost

(?<!ing|how|out)\sto\b

我在FileLocatorPro中使用的表达式没问题,但在我添加了一些单词之后,比如

  (?<!ing|how|out|wants)\sto\b
它出了问题。使用&#34; |&#34;?

是否有限制

1 个答案:

答案 0 :(得分:0)

用于Perl兼容选项的正则表达式风格是Boost,请参阅the FileLocatorPro docs

  

Perl兼容的regexp语法基于Boost正则表达式引擎,不仅包括“经典”正则表达式引擎的功能,还包括此处详述的其他Perl样式表达式增强功能:http://www.boost.org/doc/libs/release/libs/regex

提升文档说(?<!pattern) consumes zero characters, only if pattern could not be matched against the characters preceding the current position (pattern must be of fixed length).

这意味着,lookbehind中的所有替代品必须具有相同的长度。

解决方法是用相同长度的替代品来链接观察者:

(?<!ing|how|out)(?<!wants)\sto\b

请参阅regex demo(使用Python选项,因为Python具有相同的lookbehind长度限制)。