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

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

于 2022-05-27 发布 文件大小:678.10 kB
0 209
下载积分: 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 个回复

  • 一个中值滤波程序
    一个中值滤波程序-a median filter programme
    2022-07-23 01:49:47下载
    积分:1
  • viterbi213 硬判决 c语言代码
    viterbi 硬判决是指解调器根据其判决门限对接收到的信号波形直接进行判决后输出0或1,换句话说,就是解调器供给译码器作为译码用的每个码元只取0或1两个值,以序列之间的汉明距离作为度量进行译码,适用于二进制对称信道(BSC)
    2022-10-21 21:35:03下载
    积分:1
  • dda algorithm is the basic algorithm in computer graphics, very useful, it is re...
    dda算法是计算机图形学的基本算法,非常实用,建议大家用。可以画直线-dda algorithm is the basic algorithm in computer graphics, very useful, it is recommended by everyone. Can draw a straight line
    2022-12-28 09:10:03下载
    积分:1
  • Conti. 通过优化GA(遗传)写的JC层裂,1999年8月
    随机搜索和优化的介绍写在支持文本,2003运行此程序的GA。亲自选择的轮盘的方法是用在这里。包括。家长选择从人口包括精英染色体。这里使用的是标准的位形。像往常一样,代码中的适应度值的作品(更高更好);结果,然而,报告的实际利益的损失值。此代码不在θ值以外的thetamax和thetamin直接相关约束的工作。J. C.剥落,八月1999 G
    2023-04-25 15:00:04下载
    积分:1
  • 源包括一个递归模板版本和一个非
    The source includes a recursive template version and a non-recursive template version
    2022-03-18 21:30:09下载
    积分:1
  • 合成孔径雷达CS成像点目标仿真
    利用MATLAB完成合成孔径雷达CS成像算法的点目标仿真。雷达成像算法较多,其中较为容易理解,且广泛应用于工程实践中的就是CS算法。本代码采用点目标仿真回波数据,并完整的完成了CS算法的每个步骤,非常适合大家学习。
    2022-12-15 23:15:03下载
    积分:1
  • 神经网络30例经典程序
    介绍了matlab中 神经网络常用经典类型30历程的数据及源代码,介绍得由浅入深,层层递进。是学习神经网络算法好帮手,希望能给大家带来学习中的方便,希望能和大家多多交流,一起进步。有什么好的思想和方法,大家一起交流,进步的更快一些。
    2022-06-03 18:17:39下载
    积分:1
  • confidence interval associated procedures
    置信区间的相关程序-confidence interval associated procedures
    2022-08-19 01:01:14下载
    积分:1
  • c# rsa algorithm encryption/decryption
    RSA加密和解密C#实现公钥和私钥是预定义的。浏览要加密或解密的文件。
    2022-06-18 22:48:56下载
    积分:1
  • JAVA 100种源码
    近一百种算法的源码,包括:bin_sort, huffman, BD, dijkstra, maymult等等。。 能够让JAVA初学者迅速掌握核心算法以及编程能力。。 JAVA是一种面向对象的编程语言,应用广泛。。。
    2023-08-10 09:10:03下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载