摘要:
这两天在用Python处理文本,要用正则表达式去匹配大文件数据,然而:被匹配的数据可能位于一行,也可能分布在多行,因此不能简单使用readline();而且也不知道被匹配的数据从哪里开始?长度是多少? 由于re模块的正则匹配是针对已知文本的,这样一来就需要事先获取整个文件中的文本,再使用正则表达式进行匹配。 google了一把,发现Python内置的mmap模块可以解决这个问题,于是随笔记录下了(参见[Python]re+mmap实现大文件的正则匹配)。 与此同时,无意中看到了《流数据多模式正则表达式》这篇文章,其中提到了“流式模式匹配”的概念,摘录如下: 正则表达式是一种强大的工具,当我们. 阅读全文
摘要:
一、需求 在Python中,要将正则表达式应用于匹配整个文件,但又不想将整个文件内容全部读入内存(特别是对于大文件而言,更是如此)。二、解决方法 使用re模块进行正则匹配,使用mmap模块进行文件的内存映射。三、举例 (来源于"Stack Overflow" -- How do I re.search or re.match on a whole file without reading it all into memory?) You can use mmap to map the file to memory. The file contents can then be 阅读全文