boost库中正则表达式的转义序列\K

boost库中正则表达式的转义序列\K,boost,boost-regex,lookahead,lookbehind,Boost,Boost Regex,Lookahead,Lookbehind,我需要在boost(1.54版)中将look-behind表达式替换为\K,因为它有局限性,但它不起作用。我该怎么做?问题是什么?有没有其他方法可以使用lookahead转换此表达式 (?这里的回答有点晚 根据,使用Perl的\K是可能的,我刚刚在Sublime Text 3中通过测试证实了这一点,它使用Boost.Regex作为其正则表达式搜索引擎。此外,我发现您发布的两种表单都没有明显的语法错误。我唯一能想到的是,您在字符串文本中使用正则表达式,而没有转义了\。如果是这种情况,您的示例的正确

我需要在boost(1.54版)中将look-behind表达式替换为\K,因为它有局限性,但它不起作用。我该怎么做?问题是什么?有没有其他方法可以使用lookahead转换此表达式


(?这里的回答有点晚

根据,使用Perl的\K是可能的,我刚刚在Sublime Text 3中通过测试证实了这一点,它使用Boost.Regex作为其正则表达式搜索引擎。此外,我发现您发布的两种表单都没有明显的语法错误。我唯一能想到的是,您在字符串文本中使用正则表达式,而没有转义了\。如果是这种情况,您的示例的正确正则表达式应该是:

foo.*\\K bar

如果不是这样,一种解决方法(显然会影响性能)是反转字符串,然后使用可变宽度的前瞻。 然后,您的示例中修改的正则表达式为:

rab (?=.*oof)

我认为问题在于Boost向后看

表达式包含一个repeat
*
,使其长度可变