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

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

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

  • Mathematics, like after the transformation, QR decomposition, such as solution o...
    数学,好似后的变换,QR分解等解场系数微分方程的程序-Mathematics, like after the transformation, QR decomposition, such as solution of differential equation field procedures
    2022-09-13 06:45:03下载
    积分:1
  • 微遗传多目标优化
    基于微遗传算法的多目标优化论文研制的托斯卡诺普利多 · 格雷戈里奥。基于微遗传算法 (微-GA) 是一个很小的人口 (四个人被使用在我们的实验) 和重新初始化过程具有遗传算法的多目标优化方法。我们使用三种形式的精英主义和内存来生成微遗传算法初始种群我们的方法被测试发现在专业文献中的几个标准函数。得到的结果是十分令人鼓舞,因为他们展示的是这种简单的方法可以产生 Pareto 前沿在很低的计算成本的重要组成部分。
    2022-02-21 07:37:55下载
    积分:1
  • Apriori 数据挖掘 源码
    Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。 是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递归的方法。
    2022-02-06 22:22:07下载
    积分:1
  • andew_ng 的机器学习练习2
    这个是斯坦福大学在coursera 公开课上的机器学习的练习2的习题答案和原题。仅供参考。 有在学习机器学习的同学,可以选择andew_ng在coursera 公开课上的机器学习,这是一个很好的课程,而且算法讲的很详细,这个代码是里面练习的参考答案之一,对于刚开始学习的同学很有用。
    2023-05-17 06:50:03下载
    积分:1
  • 最小二乘程序
    最小二乘法计算程序-least squares method procedures
    2022-01-26 01:31:06下载
    积分:1
  • FFT algorithm version of the C language description of classes.
    FFT 算法的C语言班版描述。本人亲自编写,希望对你有用。-FFT algorithm version of the C language description of classes.
    2022-03-04 05:48:04下载
    积分:1
  • odd N bands Demon Lineup : N
    奇数N 阶魔方阵问题: 奇数N 阶魔方阵的构造规则如下: 1、在第一行的正中间填入1; 2、如果左上角能够移动,则往左上角填入后继的数;如果左上角不 能移动,则顺移到该列最下方左边的一列中最靠近该列的位置; 3、如果左上角不能移动,同时在该列位置的最下方左边最靠近的位 置处也不能填入数,则往该位置的上一行的最右边的位置处填入 后继数; 4、每次尽可能地往左上角填数,如果发现左上角已经填满了数,则 从当前填的数的位置下方填上后继数。 要求: 无。 输入: 用户从键盘任意输入一个正奇数。 输出: 打印出该魔方阵。-odd N bands Demon Lineup : N-odd magic Lineup Construction Rules are as follows : 1, the first line is the middle of a preference; Two, if the upper left corner to Mobile, the successor to fill in the upper left; If the upper left corner, unable to move, with the move out of the bottom of the left one of the closest out of position; three, if the upper left corner, unable to move, while in the position shown in the bottom left nearest location Department has not entered a few, to the position of the party on the right side of the positions filled successor; 4, each possible to fill the upper left corner, if fill the upper left corner, has found a few, from the current fill several positions to fill in the bottom subsequent few. Requ
    2022-01-21 19:39:47下载
    积分:1
  • 推荐系统-协同过滤
    应用背景 本程序是基于java实现的基于用户的协同过滤算法,算法很简单,由于网上关于代码实现的资料很少, 所以资料主要目的是提供一个供大家参考的资料,仅供参考. 关键技术u1.base和u1.test为训练集和测试集,分别来自MovieLens数据集, 本程序只是很简单的基于用户的协同过滤算法 运行算法所需要的配置信息,包括读取训练集和测试集还有最近邻个数的选择都在Base.java文件中可以找到 本程序的主程序是Application.java 仅供参考,希望对大家有帮助
    2023-07-19 11:45:03下载
    积分:1
  • 文件1.txt,2.txt,3.txt和5.txt为用Fortran编写的有限元程序 4.txt为用c++编写的钢筋混凝土异形柱的全过程非线性分析源程序...
    文件1.txt,2.txt,3.txt和5.txt为用Fortran编写的有限元程序 4.txt为用c++编写的钢筋混凝土异形柱的全过程非线性分析源程序-document 1.txt, 2.txt, 3.txt and 5.txt Fortran prepared for the use of the finite element program 4.txt to use C++ to prepare the R.C.special-the whole process of nonlinear analysis source
    2022-08-18 18:12:35下载
    积分:1
  • 复数据快速傅立叶变换
    复数据快速傅立叶变换算法-Minute Data Fast Fourier Transform algorithm
    2022-03-04 07:52:44下载
    积分:1
  • 696518资源总数
  • 106182会员总数
  • 24今日下载