-
一个用MASM写的正则表达式引擎
此正则表达式引擎属于正统的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%的代码片段,完整代码需下载后查看 加载中 侵权举报
- 2022-05-27 18:36:44下载
- 积分:1
-
用C++语言实现的基于小波分析的源代码,实现了小波分析的诸多算法...
用C++语言实现的基于小波分析的源代码,实现了小波分析的诸多算法-With C++ Language based on wavelet analysis of the source code, the realization of the wavelet analysis of many algorithms
- 2022-11-08 02:10:04下载
- 积分:1
-
Fourier transform
以C-Fourier变换为基础的编程,帮助有兴趣的爱好者。
- 2022-08-09 21:40:23下载
- 积分:1
-
一种DT算法
DT算法,可以抽取物体的骨架。它可以一次遍历整个物体,获取其连通骨架。对于0和1格式的离散数据,也可以改变一下程序变为抽取物体的孔隙。
- 2023-08-18 22:25:04下载
- 积分:1
-
In the production and experiment, usually based on a set of experimental data to...
在生产和实验中,通常需要依据一组实验数据,确定函数来近似该组数据,可以采用最小二乘法求解上述问题。-In the production and experiment, usually based on a set of experimental data to determine the function to approximate the set of data, least square method can be used to solve the aforementioned problems.
- 2022-01-25 23:34:42下载
- 积分:1
-
聚类算法实现
聚类算法VC++,可产生随机数,实现了k均值聚类算法和ISODATA算法,可实现样本的载入和聚类,系统在Vc++6平台下运行,有运行的界面和菜单,聚类数目可以人为设定,不同类别以不同的颜色来表示。
- 2022-02-26 11:54:45下载
- 积分:1
-
java计算tfidf写入txt中
java统计总词数,特征词出现的次数,出现的文本次数,分别计算tf,idf,得到tfidf值,对文本进行向量化,写入txt文本中,方便以后做文本聚类。
- 2022-02-05 04:18:23下载
- 积分:1
-
在VC++中使用GPU的基本遗传算法
about the basic GA in the VC++ using GPU to -about the basic GA in the VC using GPU to
- 2022-12-27 19:45:03下载
- 积分:1
-
主要讲了求合身伯格矩阵全部特征值得qr方法。ap为合身伯格矩...
主要讲了求合身伯格矩阵全部特征值得qr方法。ap为合身伯格矩-Major topics of the order to fit all the characteristics of worth qr Burg matrix method. Berg moment for the fit ap
- 2023-02-14 11:00:03下载
- 积分:1
-
基于SRP-PHAT+SRC的声源定位
这是一段采用SRP-PHAT算法的声源定位程序。为了减小计算量,采用了SRC(STOCHASTIC REGION CONSTRICTION) 策略可以大大减小时间复杂度,比基于网格的SRP-PHAT的方法快千倍以上。
- 2022-02-04 08:17:59下载
- 积分:1