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

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

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

  • 随机数产生源码
    自己写的随机数产生源码,1. 使用乘同余法产生[0,1]区间上均匀分布的随机数2.基于[0,1]区间上均匀分布的随机数利用反变换法生成:连续随机变量:均匀分布随机变量、指数分布随机变量、三角分布的随机变量、正态分布的随机变量离散随机变量:离散均匀分布、泊松分布
    2023-05-22 14:35:03下载
    积分:1
  • c + + 中的 BFS 15_Puzzle 源代码
    c + + 中的 BFS 15_Puzzle 源代码
    2022-01-26 05:37:50下载
    积分:1
  • 本文是一程序源代码,描述的是在一维条件下用FDTD计模拟波在与频率有关的介质中传播时E的变化。...
    本文是一程序源代码,描述的是在一维条件下用FDTD计算模拟波在与频率有关的介质中传播时E的变化。-This article is a source code, describing 1D FDTD simulation of a frequency dependent material for E field changes.
    2022-02-21 00:34:36下载
    积分:1
  • 对给出的任意一个合式公式(不超过四个命题变元),使学生会用C语言的语句表示出来,并且能够计它在各组真值指派下所应有的真值。...
    对给出的任意一个合式公式(不超过四个命题变元),使学生会用C语言的语句表示出来,并且能够计算它在各组真值指派下所应有的真值。-Given any one of the well-formed formula (not more than four propositional variables), so that students will use C language statements that come out, and it is able to calculate the true value assigned to each group should be under the true value.
    2022-02-01 17:48:48下载
    积分:1
  • matlab仿真硬件时用的定点化仿真
    应用背景matlab仿真硬件时用的定点化仿真,一般用matlab 直接生成的滤波器响应仿真,因为结果是浮点的,所以和真实硬件计算出的结果差别很大。所以应当进行定点化处理,再检查响应曲线,在硬件设计(FPGA)就应该提前清楚到底要多和位的精度。关键技术输入参数是归一化的浮点数以及位宽,bit_floor.m用来仿真低位直接截断后的效果。bit_round.m是硬件按真正的四舍五入截断处理后的效果。bit_round_hw.m是仿真硬件处理里简化版四舍五入。
    2022-12-06 11:40:03下载
    积分:1
  • 自己编写的,1024点快速傅里叶变换、倒频谱分析、功率谱分析及其Applet曲线显示程序源代码。 说明清楚,附有验证使用的数据文件...
    自己编写的,1024点快速傅里叶变换、倒频谱分析、功率谱分析及其Applet曲线显示程序源代码。 说明清楚,附有验证使用的数据文件-themselves prepared in 1024 point fast Fourier transform, cepstrum analysis, power spectrum analysis and Applet curve shows the source code. Make it clear with the use of the test data files
    2023-08-21 00:10:04下载
    积分:1
  • 根据人工智能的模糊理论编写的温度控制程序
    应用背景模糊数学将会成为人工智能的理论基础!!!     众所周知,人类很多的新发现新理论的诞生都和数学有千丝万缕的关系,数学亦有科学中的科学之美称,不幸的是,应该教育让数学变成枯燥无味,一度它成了我的致命科目,其实哪门科目都让我头痛!模糊数学的诞生是历史性,它可能是引导人工智能的发展方向,这是我以前就作过的设想,非常巧合的是,后来在网上居然发现有专家的观点与我的不谋而合!    人工智能是一个仿生学,他仿的是人类的大脑,以现今人类的科技水平,对大脑的研究也不过是初级阶段,但有生活经验的人都知道,大脑应该是这种思维模式,先从外界学习知识,并将其储存,到再遇到类似问题时再将其拿出来对比,随着经验的丰富,在某些问题分析得更为透彻,这就涉及一个问题,就是当储存后的知识,怎么和后来接触到的新知识相比较,你用红笔写了个"人"字,他用黑笔写了"人"字,对我们人来说,这都是一个人字,不管你用黑笔还是红笔,但机器不同,他之前接受的可能是用粉笔写的是"人"字,现在面对两个同样的家,颜色是不同的,但字是一样的,这就要对之前的储存信息进行筛选,即筛去颜色属性,将笔画进行
    2023-06-06 05:55:02下载
    积分:1
  • 主要的
    列主元法求解高次线性方程-main-element method high linear equations
    2022-03-23 22:38:38下载
    积分:1
  • FFT的C++代码
    fft algorith and the c++ code
    2023-08-05 23:55:03下载
    积分:1
  • ArcEngine绘画地图
    应用背景arcEngine地图绘画,初学者可以借鉴关键技术arcEngine绘画,地图实例已大连的实际应用为背景
    2022-01-26 07:45:12下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载