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

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

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

  • 高维空间中的广义投影群
    Finding Generalized Projected Clusters in High Dimensional Spaces - ORCLUS - A subspace clustering algorithm.-Finding Generalized Projected Clusters in High Dimensional Spaces- ORCLUS- A subspace clustering algorithm.
    2022-08-16 08:51:23下载
    积分:1
  • 近年数学建模竞赛优秀论文,具有较大参考价值
    近年数学建模竞赛优秀论文,具有较大参考价值-Mathematical Contest in Modeling in recent years excellent papers, with a larger reference value
    2022-05-17 02:34:21下载
    积分:1
  • 梯度优化
    梯度下降法是一种一阶优化算法。若要查找函数使用梯度下降法的局部极小值,一个采取步骤负梯度 (或近似梯度) 成正比的当前点的功能。如果相反你采取步骤积极的梯度成正比,其中一个方法局部最大值的函数 ;然后,程序称为梯度上升。梯度下降法也被称为是最陡下降或最速下降的代码的方法有助于计算采用梯度下降法的目标函数值最小值。梯度下降法可以用于求解线性方程组,转化为二次型极小化问题,例如,使用线性最小二乘系统。解决方案的线性最小二乘意义上被定义为最小化函数在传统线性最小二乘法为真正和使用欧氏范数,在这种情况下 请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
    2022-01-29 00:48:01下载
    积分:1
  • C++ 数据结构 源码
    谭浩强版本的C语言教材或C++教材,书本上主要的程序讲解,实例,在包中都基本已经包含了的 另外包含了一个用C语言实现的基本的公交车系统
    2023-01-08 15:50:03下载
    积分:1
  • 三相机成像
    基于opencv和Imaging Control的三相机同时成像继续。
    2022-02-26 11:53:51下载
    积分:1
  • A*算法matlab仿真程序
    A*(A-Star)算法是一种静态路网中求解最短路最有有效的方法: 公式表示为: f(n)=g(n)+h(n), 其中f(n) 请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
    2023-01-17 05:30:03下载
    积分:1
  • matlab数字信号处理代码,仿真信号处理的内容
    matlab数字信号处理代码,仿真信号处理的内容-Matlab digital signal processing code, simulation of signal processing
    2022-07-28 03:10:24下载
    积分:1
  • matlab, c 实现solbel
    用sobel算子实现边缘检测源代码,用C++实现了sobel算子。图像编码完整实现。
    2023-05-11 22:35:03下载
    积分:1
  • Kalman滤波【标准、常规】
    线性最小二乘估计算法是应用最广泛的参数估计方法,它在理论研究和I:程应用中都具有重要的作用。后续发展起来的卡尔曼滤波参数估计算法同样也在这两方面起到很重要的作用。本章中对目标的运动建立较为简单的数学模型,并用最小二乘和卡尔曼滤波对其参量进行估计,经过拟 合推出目标轨迹。通过大量的仿真实验,验证卡尔曼滤波估计在目标跟踪定位系统中的定位跟踪效果要好于最小二乘估计。
    2022-06-30 18:36:58下载
    积分:1
  • 基于SVD的人脸识别,可以直接计算出识别正确率
    基于SVD的人脸识别,可以直接计算出识别正确率-SVD-based face recognition, and can directly calculate the correct rate of recognition
    2022-04-25 07:11:14下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载