-
一个用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
-
相关向量机-稀疏贝叶斯学习源码
相关向量机回归的实现,主要是对Tipping的这篇文章的算法进行实现:Tipping, M. E. and A. C. Faul (2003). "Fast marginal likelihood maximisation for sparse Bayesian models." In C. M. Bishop and B. J. Frey (Eds.), Proceedings of the Ninth International Workshop on Artificial Intelligence and Statistics, Key West, FL, Jan 3-6.做SBL的时候可以用上,通过适当的修改也可以用在classification上。
- 2023-03-14 17:05:03下载
- 积分:1
-
搜索的电影列表的详细信息以及他们从一个二进制文件的详细资料
这里是一个二进制文件。要从该文件加载数据,然后我们必须使用所有的排序算法来排序和搜索电影并显示其详细信息。我们必须也将数据保存后搜索和排序。这是一个非常紧凑的和有用的和创新的项目。
- 2022-06-21 09:11:11下载
- 积分:1
-
monte carlo方法在各个方面中的小应用
monte carlo方法在各个方面中的小应用-monte carlo method in all aspects of small applications
- 2022-02-10 11:48:07下载
- 积分:1
-
Canny edge detector algorithm matlab
这部分给出了
- 2022-02-02 18:53:09下载
- 积分:1
-
simHash,用来网页去重最常用的hash方法,速度很快.
Simhash
传统IR领域内文本相似度比较所采用的经典方法是文本相似度的向量夹角余弦,其主要思想是根据一个文章中出现词的词频构成一个向量,然后计算两篇文章对应向量的向量夹角。但由于有可能一个文章的特征向量词特别多导致整个向量维度很高,使得计算的代价太大,对于Google这种处理万亿级别的网页的搜索引擎而言是不可接受的,simhash算法的主要思想是降维,将高维的特征向量映射成一个f-bit的指纹(fingerprint),通过比较两篇文章的f-bit指纹的Hamming Distance来确定文章是否重复或者高度近似。
simhash算法很精巧,但却十分容易理解和实现,具体的simhash过程如下:
请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
- 2022-11-14 00:20:04下载
- 积分:1
-
2,算法设计线性时间选择
2,算法设计线性时间选择-2, the algorithm design of linear time to choose
- 2022-07-23 18:06:42下载
- 积分:1
-
4级词典构建哈希表
资源描述哈希表的构建,主要使用了ELFHASH进行编码。分别使用了指针哈希和开放地址哈希进行编写。用4级词汇构建,测试样例为4万个输入,可以明显分析其时间差距。大学二年级开学初的作业之一。
- 2022-02-22 11:13:11下载
- 积分:1
-
视频镜头分割
资源描述csdn &nbs
- 2022-09-02 09:25:04下载
- 积分:1
-
K条最短路算法,Mapinfo Mif格式文件,约束条件值可以设定
K条最短路算法,Mapinfo Mif格式文件,约束条件值可以设定-K of the shortest path algorithm, Mapinfo Mif format, restrictions value can be set
- 2022-07-01 17:35:32下载
- 积分:1