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

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

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

  • binary tree traversal
    The establishment of tree , insert, delete , sort, first sequence, sequence after sequence , sequence traversal
    2022-08-09 22:14:49下载
    积分:1
  • 电脑鼠走迷宫 包含迷宫搜索和冲刺函数
    电脑鼠走迷宫算法 包含迷宫搜索和冲刺函数-Computer Mouse Maze algorithm is a function that contains a maze search and sprint
    2022-01-29 01:00:14下载
    积分:1
  • 意味着在C #滤波器
    应用背景关键技术均值滤波的想法是简单的替换每个像素值与平均图像(`平均”)邻国的价值,包括本身。这消除了其像素值的影响具代表性的环境。像其他部分是围绕一个核心,这代表形状和邻域大小进行采样时计算平均。
    2022-08-21 13:48:45下载
    积分:1
  • 基于演化博弈的两个小区用户的资源分配
    应用背景该算法利用演化博弈的思想进行多小区用户的资源分配,将小区重叠部分当做种群,种群中的用户进行演化博弈进行网络切换,基站为其分配子信道。关键技术本算法利用matlab进行仿真测试,仿真结果显示演化博弈能够达到稳定,提升系统吞吐量,在小区资源分配能够有一个很好的参考。不同于传统的资源分配方法,可以给出一个新思路。
    2022-10-29 00:40:04下载
    积分:1
  • 基于51单片机的信号产生于周期检测
    通过51单片机的外部中断接收信号,用51单片机定时器0的工作模式2记时,准确的产生一定周期的方波。同时当外部中断检测到信号的下降沿则打开定时器1记时,当第二个信号来时,关闭定时器1,读取时间,显示数据。
    2022-02-22 01:50:55下载
    积分:1
  • 最简练的记忆游戏
    要有简单易懂的交互界面。 2.允许用户输入数字,选择游戏类型,在显示菜单和输入选择过程中要有loading界面 3.按照选择的类型进行游戏,用户根据控制台显示的字符记忆进行输入,如果正确,进入下一关,分数增加并且难度增加 4.要对取胜做出判断,如果记忆的字符输入错误,提示是否继续,是则继续游戏,否则给出分数
    2022-10-20 14:40:03下载
    积分:1
  • 此程序为C语言编写的图形操作
    此程序为C语言编写的图形操作算法-procedure for the C language graphics algorithm
    2022-02-14 04:21:11下载
    积分:1
  • 数值分析三角直接分解
    数值分析三角直接分解法-Numerial Analyse: Doolittle Analyze Arithmetic
    2022-01-29 02:40:15下载
    积分:1
  • This is a Lagrange's algorithm
    这是一个Lagrange法算法-This is a Lagrange"s algorithm
    2022-01-30 10:51:40下载
    积分:1
  • 考研用到的数学的公式 很齐全,相信对大家都很有用的
    考研用到的数学的公式 很齐全,相信对大家都很有用的-Articles by use of mathematical formulas is complete, I believe everyone is a useful
    2022-05-08 08:03:07下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载