登录
首页 » 算法 » 一个用MASM写的正则表达式引擎

一个用MASM写的正则表达式引擎

于 2022-05-27 发布 文件大小:678.10 kB
0 210
下载积分: 2 下载次数: 1

代码说明:

此正则表达式引擎属于正统的NFA引擎,基本兼容Perl,简单说一下引擎是怎么实现的: 首先做一个递归下降语法分析,利用栈把正则表达式转换成NFA(以有向图的形式表现),再遍历NFA判断是否能到达完成节点。 实现正则表达式匹配的各种复杂功能的力量来自于回溯,而回溯的基础是栈,回溯能力是通过栈来达成的。 栈中保存了匹配路径中所有的状态,状态回溯就是出栈,状态匹配就是入栈。 除了回溯,一些扩展功能的实现也是通过栈来完成的,比如捕获和零宽断言,都要通过搜索或操纵栈来完成。 转换成NFA再匹配的好处是简化匹配和利于优化和DEBUG:因为不管再复杂的表达式转换成NFA之后只有边和节点组成,边和节点也只有顺序、分支、循环这三种形式组成。 详细原理说明看下面关于实现引擎的文章,第3条是我理解引擎匹配原理的入门参考。 支持GBK和UTF8编码   ==参考和学习资料== 关于实现引擎的文章: 1、《Perl语言编程》第五章  书 2、《精通正则表达式》  书 3、构造正则表达式引擎   http://www.cppblog.com/vczh/archive/2008/05/22/50763.html   我的原理学习入门参考 4、NFA引擎匹配原理   http://blog.csdn.net/lxcnn/article/details/4304651 5、英文参考资料   请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 批量删除画图中的散点数据
    在画散点图过程中,我们期望删除一些不需要的点。有时这种点太多,需要批量删除。该工具即根据这一需求,只需要输入删除区域的点坐标,即可实现批量删除。定义域梯形删除法。 用法:必须在Linux命令行下运行,且安装有awk(默认Linux会安装)。
    2022-04-10 23:51:49下载
    积分:1
  • 本文从理论上推导出CRC 实现原理,给出三种分别适应不同计机或微控 制器硬件环境的C 语言程序。读者更能根据本原理,用不同的语言编写出独特风格...
    本文从理论上推导出CRC 算法实现原理,给出三种分别适应不同计算机或微控 制器硬件环境的C 语言程序。读者更能根据本算法原理,用不同的语言编写出独特风格 更加实用的CRC 计算程序。-This paper theoretically deduced from the principles of CRC algorithm is given three separate computers or micro-controller to adapt to different hardware environment of the C language program. According to this algorithm the reader a better theory, in different languages a unique style of the CRC calculation program more practical.
    2022-02-15 19:33:59下载
    积分:1
  • 卡尔曼滤波源码
    卡尔曼滤波源码-Kalman filter source
    2022-05-13 11:50:22下载
    积分:1
  • Simulation Algorithm. By compiling and debugging a system dynamic allocation of...
    模拟实现银行家算法。通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的避免死锁。-Simulation Algorithm. By compiling and debugging a system dynamic allocation of resources simple process simulation, the observation Deadlock conditions, and using bankers algorithm, effective avoid deadlock.
    2022-04-22 19:46:44下载
    积分:1
  • 基于视频的图像处理系统
    基于AVI的 图像处理系统 里面有目标检测和背景差分法还有提供目标跟踪分析。
    2022-06-21 12:42:59下载
    积分:1
  • guided滤波器 matlab
     guided filter主要用于对分类好的影像进行后处理,利用邻近像元的空间一致性,周围像元通过滤波平滑的方法进行求解中心像元值,而且guidedfilter比其他的滤波器更加简单,效果更好,模型需要guided影像,输入影像,通过guided影像来限定输入影像的边界,从而达到保存边界的目的。
    2022-03-21 00:12:41下载
    积分:1
  • 恩,就是三次样条插值,小弟刚刚学会编程,大家见谅,见谅...
    恩,就是三次样条插值,小弟刚刚学会编程,大家见谅,见谅-TU, cubic spline interpolation, younger brother had just learned programming, we apologize, apologize
    2023-04-15 06:45:03下载
    积分:1
  • 中国象棋 王小春
    中国象棋 王小春 源码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    2022-03-03 00:09:53下载
    积分:1
  • 层次分析 、效益分配、幻方
    层次分析法 、效益分配、幻方-AHP, and the benefit distribution, Magic Squares
    2023-05-24 10:05:03下载
    积分:1
  • 利用快速傅立叶变换间接计的Hilbert变换。程序已测试,效果很好...
    利用快速傅立叶变换间接计算的Hilbert变换。程序已测试,效果很好-The use of Fast Fourier Transform Hilbert transform calculated indirectly. Procedures have been tested, the effect of good
    2022-03-15 17:45:20下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载