2013-07-22 35 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)