大文件正则表达式和内存映射文件边界

时间:2015-02-19 01:50:09

标签: regex windows mfc memory-mapped-files

我希望通过大文件进行正则表达式匹配。 它是文本文件。要在GUI上显示文件,我使用内存映射文件和视图(Windows / MFC)。 我想搜索(正则表达式)整个文本的问题,我无法正确匹配映射视图的边界(我还没有尝试过,但我认为它无法匹配)。 说,我有一个文本“aab | bcc”,其中“|”是映射视图的边界。 我想匹配“bb”。我正在使用CAtlRegex。 从理论上讲,如果我编写支持这种边界问题的正则表达式引擎应该是可能的(但我不想这样做......)。

对此有什么好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

只要您知道最大匹配字符串的长度,它应该以这种方式工作。我猜这个最大的尺寸小于dwAllocationGranularity。

当您搜索到x位置时。只需从x-dwAllocationGranularity开始定义搜索的下一个段。

因此开销是两次搜索dwAllocationGranularity字节。