zoukankan      html  css  js  c++  java
  • [Python]流式模式匹配?

    [Python]流式模式匹配? - RussellLuo - 博客园

    [Python]流式模式匹配?

          这两天在用Python处理文本,要用正则表达式去匹配大文件数据,然而:被匹配的数据可能位于一行,也可能分布在多行,因此不能简单使用readline();而且也不知道被匹配的数据从哪里开始?长度是多少?

          由于re模块的正则匹配是针对已知文本的,这样一来就需要事先获取整个文件中的文本,再使用正则表达式进行匹配。

          google了一把,发现Python内置的mmap模块可以解决这个问题,于是随笔记录下了(参见[Python]re+mmap实现大文件的正则匹配)。

          与此同时,无意中看到了《流数据多模式正则表达式》这篇文章,其中提到了“流式模式匹配”的概念,摘录如下:

          正则表达式是一种强大的工具,当我们进行文本信息的分析和处理时通常都会用到,C++、JAVA、C#等语言都拥有各自的正则表达式库,而有些语言如Perl甚至内嵌了模式匹配。但是当我们在处理流数据时,上述的正则表达式使用起来并不顺手。因为通常的正则表达式用于搜索一个已知的文本数据,而流数据通常具有不可预知的特性,如:具体内容、长度等。另外在处理大文本时,流式模式匹配也能大大简化程序,如不必将所有文本都读入能内存、不用考虑一次读取多少文本,本次读取的文本是否正好跨越可能匹配的部分文本段,导致必须重复搜索之前的已搜索过的能容等。

          忽然感觉“流式模式匹配”的概念是非常灵活和强大的,用它来解决我遇到的问题也应该是非常好的方案。于是继续google,结果好像没有发现Python中有相关的概念和应用,有点小遗憾。

          在此做个记录,以备后续参考。有时间了一定要深入了解下“流式模式匹配”的原理和应用,最后能够用Python实现出来就再好不过了:)

  • 相关阅读:
    封装小程序http请求
    ES6为数组做的扩展
    练习题
    二叉树的遍历
    快速搭建vue项目
    收集的前端面试大全
    ios兼容webp格式的图片
    小程序开发API之获取启动参数
    使用HTML编写邮件
    深入理解javascript原型和闭包(9)——this
  • 原文地址:https://www.cnblogs.com/lexus/p/2758616.html
Copyright © 2011-2022 走看看