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

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

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

  • Kmeans的VB代码和测试数据
    kmeans algorthms code vb and test data
    2022-03-25 17:35:53下载
    积分:1
  • 本程序通过调用matlab提供的信号分析函数对脑电信号进行分析变换,对信号处理工作具有很大帮助。...
    本程序通过调用matlab提供的信号分析函数对脑电信号进行分析变换,对信号处理工作具有很大帮助。-This procedure provided by calling matlab EEG signal analysis function analysis of transformations, the signal processing of great help.
    2022-12-31 02:25:03下载
    积分:1
  • 正则表达式分析器
    应用背景这是一个正则表达式自动创建的代码在C + +关键技术C + +,有限自动机正则表达式
    2022-02-06 22:44:47下载
    积分:1
  • 神经网络
    本代码实现如何反向传播算法 works.it 将生成关系图,它会告诉准确的预测和实际的输出结果。
    2022-08-10 12:08:51下载
    积分:1
  • 模拟手机通讯录
    本程序在安全性方面相对比较突出。为避免程序实现一部分功能即结束,我们采用了用一个子函数代替主函数, 子函数调用自身的方法。同时在出现功能选择的地方,为防止出现意外的死循环,我们功能选择参数一律使用 string类型。在保存提取数据方面,我们严格按照有变动即存储,存储完立即提取到内存的规则,有效遏止了 数据意外丢失或调用不及时等情况的发生。本程序共使用了9个子函数分别来实现不同功能程序中最关键的通讯 录成员采用结构体定义,丰富了成员所包含的信息。在主界执行方面,采用独立的子函数执行。在该函数中分 别调用不同功能的函数,执行完相应的功能后可选择继或返回主菜单。主菜单在运行时会先调用一个子函数将 通讯录中的信息展示给用户,然后用户可对照信息进行响应的功能选择,不同功能调用不同函数。各函数在执 行功能时会进行相应的嵌套,以弥补各自的不足。各功能采用不同函数来执行,方便调试和修改。各函数相互
    2023-02-19 14:35:04下载
    积分:1
  • 蚁群聚类
    对输入的二维数组实现自组织聚类分析,入:类的个数k,样本数n:随机选取k个对象,初始化k个聚类中心;设置迭代计数器t=0;While(r≠0)把样本点分到距离最近的聚类中心所入:类的个数k,样本数n:随机选取k个对象,初始化k个聚类中心;设置迭代计数器t=0;While(r≠0)把样本点分到距离最近的聚类中心所入:类的个数k,样本数n:随机选取k个对象,初始化k个聚类中心;设置迭代计数器t=0;While(r≠0)把样本点分到距离最近的聚类中心所。
    2022-08-21 05:18:20下载
    积分:1
  • PGE Solving equations faster
    高斯消元法解方程, 速度较快-PGE Solving equations faster
    2022-03-21 08:54:03下载
    积分:1
  • 竞选
    原创优化算法,类似于粒子群算法,收敛速度快,适用于前段近似解的求解,可以与牛顿法结合两段求解优化问题。 只完成算法本身程序,与其他算法的对比未完成。
    2022-03-10 10:29:01下载
    积分:1
  • Implementations of different methods of sorting: BinaryInsertions.pas Bub...
    Implementations of different methods of sorting: BinaryInsertions.pas BubbleSort.pas HeapSort.pas InsertionBorder.pas InsertionSort.pas modifbubble.pas qsort.pas quicksort.pas selection.pas Shaker.pas shell.pas
    2023-06-02 19:15:03下载
    积分:1
  • breadth first search
    广度优先搜索(BFS)是一种用于搜索特定元素的方法图形.it是级别顺序搜索。当搜索基本上限于两种操作时:(a)访问和
    2022-07-05 00:49:37下载
    积分:1
  • 696518资源总数
  • 105171会员总数
  • 15今日下载