2014-09-22 28 views
0

我正在嘗試使用PCRE來匹配正則表達式。但是,在某些情況下,我想要進行「流式傳輸」匹配。由於諸如後顧斷言之類的問題,我不能簡單地丟棄匹配的部分並與其餘部分匹配。有沒有任何函數或算法能夠正確匹配一個字節流而不將它們全部存儲起來?如何匹配PCRE的字節流

回答

0

是否有任何函數或算法正確匹配字節流而不存儲它們全部?

一般來說,不,因爲你提到的原因。但在某些情況下,是的,你可以。

我不相信你可以用PCRE做到這一點。您可以使用Boost.Regexpartial match

另請參見Can you use Boost.Regex to parse a stream?

+0

PCRE也有部分匹配。但我不確定如何使用部分匹配來進行流匹配。它似乎也有許多缺陷。在你給我的URL中,有一個例子:'abc | b'總是隻會產生與'b'的部分匹配。但是如果'b'在流末尾,它應該完全匹配。這與將整個事物加載到緩衝區並進行完全匹配不同。 – 2014-09-22 16:29:28