如何匹配PCRE的字节流

问题描述:

我正在尝试使用PCRE来匹配正则表达式。但是,在某些情况下,我想要进行“流式传输”匹配。由于诸如后顾断言之类的问题,我不能简单地丢弃匹配的部分并与其余部分匹配。有没有任何函数或算法能够正确匹配一个字节流而不将它们全部存储起来?如何匹配PCRE的字节流

是否有任何函数或算法正确匹配字节流而不存储它们全部?

一般来说,不,因为你提到的原因。但在某些情况下,是的,你可以。

我不相信你可以用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