2013-07-22 27 views
1

我需要在boost(版本1.54)中用\ K代替后置表达式,因为它的限制,但它不起作用。我该怎么做,或者是什么问题?有没有其他的方法来将这个表达式转换成前瞻?在boost库中正则表达式的转义序列 K

“(?< = foo。*)bar”=>“foo。* \ K bar”???

回答

2

这里有点晚回答...

按照Boost.Regex 1.54 Documentation,使用Perl的\钾是可能的,而且我刚才通过测试证实,在崇高的文本3,使用Boost.Regex其正则表达式搜索引擎。此外,我发现您发布的任一表单都没有明显的语法错误。我能想到的唯一的事情就是你在字符串文字中使用了正则表达式,并且没有逃过\。如果是这样的情况下,你的榜样正确的正则表达式是:

foo.*\\K bar 


如果不是这种情况,一个解决方法(这显然会对性能产生影响)被扭转的字符串,然后用可变宽度预见。 你的例子修改后的正则表达式然后是:

rab (?=.*oof)