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

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

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

  • Householder transformation based on the QR decomposition. The use of Householder...
    基于Householder transformation的QR分解。 其使用需要调用Householder transformation程序。-Householder transformation based on the QR decomposition. The use of Householder transformation procedures need to call.
    2022-07-21 07:52:35下载
    积分:1
  • 相似性计
    应用背景简单地数据处理,计算两组数据间的相似性,应用在推荐系统的数据处理中,其他方向的数据处理也适用,比较简单易学,供学习交流。关键技术用C++语言实现的简单数据处理,在很多研究方向可以用于预处理数据,计算数据的相似性也是很多研究方向需要用到的,希望对大家有用。
    2022-03-05 22:37:16下载
    积分:1
  • Strike a+ B* i of the phase angle of the procedures for phase spectrum into a gr...
    求取a+b*i的相位角的程序,用于相位谱成图显示,问题关键在于根据a,b的值判断相位角所在的象限-Strike a+ B* i of the phase angle of the procedures for phase spectrum into a graph shows, the problem lies in the basis of a, b values to determine where the phase angle quadrant
    2022-12-14 15:40:03下载
    积分:1
  • C
    C算法-C Algorithm
    2022-02-06 03:51:11下载
    积分:1
  • 足球机器人中电动机控制系统的研究
    资源描述摘要:介绍了采用直流电动机作为执行元件的闭环系 统硬件和软件设计。为提高电动机的快速性和控制精度,该 系统采用了PID控制算法,并通过参数调试实验得到了比较 满意的结果。 关键词:足球机器人;PID算法;过渡过程时间
    2023-02-28 00:20:03下载
    积分:1
  • SystemC示例 全加器代码
    System C是一种软/硬件协同设计语言,一种新的系统级建模语言。它包含了一系列C++的类和宏,并且提供了一个事件驱动的模拟核,使得系统的设计者能够用C++的词法模拟并行的进程,特别是在SoC系统中。 这是SystemC全加器的一个例子,可以使用Linux中的g++编译
    2022-03-18 07:24:26下载
    积分:1
  • 松弛解方程C程序
    松弛法解方程C程序-relaxation method of solving equations C program.
    2023-07-31 04:15:04下载
    积分:1
  • bbp algorithm for calculating pi accurate to more than 10 million
    bbp算法计算圆周率精确到千万位以上-bbp algorithm for calculating pi accurate to more than 10 million
    2022-03-09 12:38:14下载
    积分:1
  • libsvm3.17
    支持向量机源码,  机器学习源码资料。libsvm3.17版本 LIBSVM是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的SVM 请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
    2022-01-31 02:35:34下载
    积分:1
  • Bisection Method
    Bisection Method - Numerical ananlysis-Bisection Method- Numerical ananlysis
    2022-04-08 17:40:01下载
    积分:1
  • 696518资源总数
  • 105873会员总数
  • 12今日下载