2012-08-10 58 views
1

有沒有辦法使用boost的正則表達式類來搜索文件而不完全讀入內存?助推正則表達式和ifstream

我目前每行讀取一個文件,這使得解析相當複雜,比通過正則表達式搜索。我每行都這樣做,因爲這些文件可能很大,我不想浪費太多內存。

正則表達式表達我想用的,如果我使用它的實例在記事本++

Block *\{([^\}]*?)MY_TOOL_Library([^\}]*?)\} 
+0

相似的問題:http://stackoverflow.com/questions/457595/can-you-use-boost-regex-to-parse-a-stream – Ferruccio 2012-08-10 09:23:00

回答

2

我不認爲升壓正則表達式實現這一點,工作正常。他們需要一個雙向 迭代器。

形式上,「正則表達式」(在數學意義上)允許一個 傳遞解析,並且可以使用正向迭代器。但是,像大多數其他正則表達式一樣, boost實現了捕獲(對正式定義的擴展爲 ),我認爲這排除了真正的單通算法(或使其非常困​​難)。

+0

這我已經知道 但我問是否有可用的解決方法 看起來像沒有「簡單」的方式.. – nobs 2012-08-13 13:22:30