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

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

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

  • 流水灯 单片机初学者
    流水灯那个程序,单片机的,初学者,一个简单的单片机入门学习程序,能实现流水灯的效果流水灯那个程序,单片机的,初学者,一个简单的单片机入门学习程序,能实现流水灯的效果流水灯那个程序,单片机的,初学者,一个简单的单片机入门学习程序,能实现流水灯的效果
    2022-03-21 00:48:50下载
    积分:1
  • 大整数乘法,实现两个大整数相乘的C++代码
    大整数乘法,实现两个大整数相乘的C++代码-Large integer multiplication
    2022-03-15 04:06:48下载
    积分:1
  • 输油管道计算程序
    本程序包含输油管道的一个计算程序,用Vb写成,主要参考《输油管道设计》里面的计算公式,可以计算管径,温降,压力降等
    2022-05-17 21:21:17下载
    积分:1
  • 使用MFC的多项式计算完毕,很值得看,但也乐…
    使用MFC完成多项式的计算,很值得一看,也是学习数据结构的好程序-use MFC polynomial complete the calculation, it is worth looking at, but also learn from the data structures the program
    2023-07-15 23:15:08下载
    积分:1
  • 链表遍历
    应用背景二子树检查如果树木是相同的,如果这样做,将打印好的消息 ; ; ; ;关键技术该程序是用C编写,并从Visual Studio IDE
    2022-05-15 09:04:22下载
    积分:1
  • 哥德巴赫猜想:哥德巴赫(哥德巴赫)曾提出这样一个猜想:2000以内…
    Goldbach s conjecture: Goldbach(哥德巴赫)曾经提出了一个这样的猜想: 对于2000 以内的正偶数都能够分解为两个素数之和。 要求: 该题是一个猜想,我们不去证明它,而是通过编程序来验证 该猜想是否正确。 输入: 用户从键盘任意输入一个自然数。 输出: 给出满足猜想的两个自然数。-Goldbach conjecture : Goldbach (Goldbach) had raised such a guess : 2000 within the can is even divided into two prime numbers and. Requirements : The title is a guess, we do not prove it, but through programmed to verify the guess is correct. Input : arbitrary user input from the keyboard to a natural number. Output : meet guess is the natural number two.
    2023-05-19 07:45:03下载
    积分:1
  • 非局部均值方法
    用matlab实现non-local means 算法,在该实现版本中使用了进行了局部搜索优化,一定程度上提高了算法的效率
    2022-05-30 13:28:34下载
    积分:1
  • 队列和堆栈执行
    执行数据结构栈和队列上一个几乎无限的向量。代码显示了如何你要插入和删除元素从堆栈或队列。此外,提出了使用继承和多态性。
    2023-06-03 01:45:03下载
    积分:1
  • 原创的可以产生校验号
    原创的可以产生校验号-can produce the original check,
    2022-06-14 10:34:08下载
    积分:1
  • 混合高斯背景建模
    采用背景差分法,用混合高斯背景建模,检测视频车辆,并显示视频的背景和前景。
    2023-05-22 16:00:04下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载