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

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

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

  • 主成分分析
    PCA,也就是PrincipalComponents Analysis,主成份分析,是个很优秀的算法,其原理是寻找最小均方意义下,最能代表原始数据的投影方法然后自己的说法就是:主要用于特征的降维。另外,这个算法也有一个经典的应用:人脸识别。这里稍微扯一下,无非是把处理好的人脸图片的每一行凑一起作为特征向量,然后用PAC算法降维搞定之。
    2022-07-19 17:55:46下载
    积分:1
  • ssc-i2s-project-at91sam3u-ek-gnu
    SAM3U4E 可编程时钟输出用于生成 WM8731 主时钟 (MCLK)。的 SAM3U4E ODT (上模终止) 功能可保证无此时钟线上的信号完整性 需要外部的分立元件。 WM8731 pin 21 模式被推倒,默认情况下 ;这配置该设备,作为一种 TWI 装置内部 注册访问。 公务员事务局 Pin15 是把拉出来,而将其 TWI 地址设置为 33 [0x0011011]。 WM8731 数字接口在 SAM3U4E 同步串行控制器上的奴隶模式下工作 (SSC) 接口,这意味着编解码器的数字音频位 ADC/DAC 左/右控制和时钟是 要生成的 SAM3U4E。
    2023-08-05 19:35:04下载
    积分:1
  • 这是用VC++编写的计器的源代码,可以进行简单的数学运
    这是用VC++编写的计算器的源代码,可以进行简单的数学运算-This is used VC++ Prepared calculator source code, you can perform simple arithmetic
    2022-12-01 18:05:03下载
    积分:1
  • 雷达数据处理
    对雷达数据处理的单目标,多传感器的matlab源程序,简单的卡尔曼滤波算法,初学的朋友们可以看看
    2022-02-19 23:24:19下载
    积分:1
  • 解大规模线性方程组的预条件Gmres方.系数矩阵可以非对称正定....
    解大规模线性方程组的预条件Gmres方法.系数矩阵可以非对称正定.-Solution of large-scale linear equations of the preconditioned GMRES method. Coefficient matrix can be non-symmetric positive definite.
    2022-05-15 20:02:59下载
    积分:1
  • mumford source code
    mumford source code-mumford source code........
    2022-12-30 05:20:03下载
    积分:1
  • contour detection by ant colony optimization
    这是一个利用蚁群算法进行图像边缘检测的程序,基于论文“图像边缘检测的蚁群优化算法”,IEEE进化计算大会(CEC),第751-756页,香港,2008年6月。输入:
    2022-06-16 07:46:26下载
    积分:1
  • Symbolic integration, notes in Chinese, we try, for reference to learn ~
    符号积分法,有中文注释,大家试试,供参考学习~-Symbolic integration, notes in Chinese, we try, for reference to learn ~
    2022-02-03 17:58:05下载
    积分:1
  • 一个费诺编码器,输入N个总和为1的小数,就可以得到N个费诺码
    一个费诺编码器,输入N个总和为1的小数,就可以得到N个费诺码-a fee Connaught encoder input N sum of a minority, it can be N Connaught yards charges
    2022-07-11 04:35:49下载
    积分:1
  • 数组为8位char型数值,通过该函数可以计出数组的16位循环校验码。...
    数组为8位char型数值,通过该函数可以计算出数组的16位循环校验码。-Array for the 8-bit char type values can be calculated through the function of an array of 16 cycle parity-check codes.
    2023-06-20 15:25:03下载
    积分:1
  • 696516资源总数
  • 106627会员总数
  • 16今日下载