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

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

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

  • 两个整数相除,可以到小数点后无穷位.用的是数组.可以看一下...
    算两个整数相除,可以算到小数点后无穷位.用的是数组.可以看一下-count two integer eliminate, to be counted after the decimal point infinite spaces. Use the array. Can look at the
    2022-08-19 06:02:58下载
    积分:1
  • JPHide 和JPSeek 的源代码
    应用背景JPHide 和JPSeek 的源代码!JPHide&JPSeek是一个JPEG图像的信息隐藏软件!-JPHide and JPSeek source code! JPHide & JPSeek is a JPEG image information hidden software!关键技术JPHIDE and JPSEEK are programs which allow you to hide a file in a jpeg visual image. There are lots of versions of similar programs available on the internet but JPHIDE and JPSEEK are rather special. The design objective was not simply to hide a file but rather to do this in such a way that it is impossible to prove that the host file contains a hidden file. Given a typical visual image, a low insertion rate (under 5%) and the absence of the original file, it is not possible to conclude with any worthwhile certainty that the host file contains inserted data. As the insertion percentage increases the statistical nature of the jpeg coefficients differs from "normal" to the extent that it raises suspicion. Above 15% the e
    2022-07-21 14:22:36下载
    积分:1
  • png 压缩处理
    png 压缩处理, 可以把 npg 格式 压缩成 更小的 文件,   比如 2Mb 的 Png文件, 可以压缩成600K 的 文件
    2023-02-11 22:35:04下载
    积分:1
  • Shoutcast 流开膛手
    最佳 Shoutcast 流翻录可用的应用程序在 Visual Basic 的 PSC 之一。快速开膛手是能够连接到任何指定的 shoutcast 流和下载它-仅 MP3 数据、 没有污染的冰标记剩下-和录制它对 MP3 文件在磁盘上
    2022-09-04 00:50:02下载
    积分:1
  • red black tree c语言
    红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。
    2023-05-09 07:05:03下载
    积分:1
  • 外推解微分方程组,并给出实例。外推首先给丁初始补偿,软件自动决定下一步的步长...
    外推法解微分方程组,并给出实例。外推法首先给丁初始补偿,软件自动决定下一步的步长-Extrapolation solution differential equations, and gives examples. First, extrapolation to the small initial compensation, the software automatically decide on the next step of
    2022-02-04 09:12:58下载
    积分:1
  • 24点 C代码
    二十四点计算程序 ver 1.0 // 作者:刘洋 // 邮件: lynn_mail@yeah.net // 主页:http://digitinn.yeah.net // 日期:2002-8-29
    2022-01-22 11:01:51下载
    积分:1
  • 项目实施的堆
    函数和过程: 1.Heapify 2.建堆 3.插入 4.提取最大 5.增加的关键 6.初始化 7.打印堆 从文件堆成 8.读取文本)
    2023-02-08 06:50:03下载
    积分:1
  • 研究生期间上《数值计》课的作业,所有代码都是C语言实现并调试通过,现在上传为大家服务。这是Seide迭代...
    研究生期间上《数值计算方法》课的作业,所有代码都是C语言实现并调试通过,现在上传为大家服务。这是Seide迭代算法-Seide iterative algorithm with C language
    2023-04-17 11:45:03下载
    积分:1
  • 模式识别与智能计-Matlab技术实现
    模式识别与智能计算-Matlab技术实现  PDF+光盘资料本书广泛吸取统计学、神经网络、数据挖掘、机器学习、人工智能、群智能计算等学科的先进思想和理论,将其应用到模式识别领域中;以一种新的体系,系统、全面地介绍模式识别的理论、方法及应用。全书共分为13章,内容包括:模式识别概述,特征的选择与提取,模式相似性测度,贝叶斯分类器设计,判别函数分类器设计,神经网络分类器设计(BP神经网络、径向基函数冲经网络、自组织竞争神经网络、慨率神经网络、对向传播神经网络、反馈型神经网络),决策树分类器,粗糙集分类器,聚类分析,模糊聚类分析,遗传算法聚类分析,蚁群算法聚类分析,粒子群算法聚类分析。本书内容新颖,实用性强,理论与实际应用密切结合,以手写数字识别为应用实例,介绍理论运用于实践的实现步骤及相应的Matlab代码,为广大研究工作者和工程技术人员对相关理论的应用提供借鉴。本书可作为高等院校计算机工程、信息工程、生物医学工程、智能机器人学、工业自动化、模式识别等学科本科生、研究生的教材或教学参考书,亦可供相关工程技术人员参考。
    2022-09-03 08:50:08下载
    积分:1
  • 696518资源总数
  • 106215会员总数
  • 5今日下载