-
一个用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
-
计算器能够实现加、减、乘、除简单运算,还能够实现数据的输入,输出,计算,显示及程序退出等功能...
计算器能够实现加、减、乘、除简单运算,还能够实现数据的输入,输出,计算,显示及程序退出等功能-calculators can be achieved, plus or minus, multiplication and simple operation, but also to achieve the data input and output, calculation, Display and exit procedures, and other functions
- 2023-03-25 05:10:03下载
- 积分:1
-
latest Fuzzy Logic Toolbox
最新模糊逻辑工具箱-latest Fuzzy Logic Toolbox
- 2022-02-06 07:28:58下载
- 积分:1
-
有限元法算光纤模式
有限元法算光纤模式-FEM mode fiber count
- 2022-04-25 08:19:36下载
- 积分:1
-
establish a ranking Binary Tree
建立一个排序二叉树-establish a ranking Binary Tree
- 2022-01-25 14:31:04下载
- 积分:1
-
大数据结构操作
- 2023-05-10 06:30:04下载
- 积分:1
-
现实对称矩阵特征值特征向量的计算
计算求实对称矩阵特征值特征向量,有包括的数据文件。这一进展由 C 语言实现。计算求实对称矩阵特征值特征向量,有包括的数据文件。这一进展由 C 语言实现。计算求实对称矩阵特征值特征向量,有包括的数据文件。这一进展由 C 语言实现。计算求实对称矩阵特征值特征向量,有包括的数据文件。这一进展由 C 语言实现。计算求实对称矩阵特征值特征向量,有包括的数据文件。这一进展由 C 语言实现。
- 2022-04-18 18:53:39下载
- 积分:1
-
JPL的stacov文件格式转sinex格式的Fortran源程序
JPL的stacov文件格式转sinex格式的Fortran源程序-JPLs stacov file format change to sinex format Fortran source code
- 2023-07-15 17:50:03下载
- 积分:1
-
SMO算法的c语言代码
这是一份用C语言实现的SMO算法代码,代码十分简练、清晰,适合学习和进一步开发,为了便于更好的理解代码,阅读前请先了解关于SMO的理论知识。
- 2022-02-04 21:22:20下载
- 积分:1
-
opencl dct
此算法有很好的表现。有人想要研究 opencl 使用这将会非常简单。与该应用程序有很多的命令。输入-h 以显示所有的命令。例如,-t 是打印的时间它成本。— — 设备 gpu 是选择 gpu 为执行设备。内核是非常简单易懂。我们可以使用 opencl 加速应用程序。使用 opencl 将是主要趋势。而且我很运气的 sdk 开发的惠顾。我们做大量的测试。和修复一些 bug。和优化内核。它是非常酷。
- 2022-04-19 19:53:20下载
- 积分:1