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

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

于 2022-05-27 发布 文件大小:678.10 kB
0 241
下载积分: 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:100万至1: 请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
    2022-04-29 13:01:23下载
    积分:1
  • 将C语言转换成汇编语言
    将C语言转换成汇编语言-C language into assembler language
    2022-03-07 03:18:38下载
    积分:1
  • matrix operations such as matrix inversionmethods,It is part of java3d project...
    java 写的matrix等的一些操作,含有矩阵求逆等方法,是java3d的一部分。https://java3d.dev.java.net/binary-builds.html -matrix operations such as matrix inversionmethods,It is part of java3d project. https:// java3d.dev.java.net/binary-builds.html
    2022-02-22 08:10:23下载
    积分:1
  • 修补程序制造商
    单位名称: uPatcher作者: 格伦 Vlotman日期: 2011 年 12 月 31 日版本: 0.0.0.1
    2022-09-05 01:30:03下载
    积分:1
  • CHAIN.C
    解马尔科夫链CHAIN.C-CHAIN.C
    2022-01-27 12:39:48下载
    积分:1
  • 键盘串口代码
    它是用于连接键盘与单片机C代码。它满足一定的规则,并连同控制器。代码给出适合MIKROC
    2023-01-25 02:40:03下载
    积分:1
  • eight Queen's achievement
    八皇后c++实现-eight Queen"s achievement
    2022-04-16 20:57:15下载
    积分:1
  • BFS 算法
    BFS 算法的实现在 c / c + +。我t 也打印派生的最短路径的路径
    2022-01-25 15:58:02下载
    积分:1
  • 大数模版
    资源描述ACM常用C++大数模版,可以进行大数加法、大数乘法、大数减法、大数除法、大数取模、大数的平方,里面包含一个样例。
    2022-02-25 15:48:04下载
    积分:1
  • GTK定位源码
    资源描述此源码是日本比较开源流行的一款GSLIB RTK算法完整代码,仅供参考……………………………………
    2022-05-15 20:44:04下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载