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

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

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

  • 李学武提交的C语言源代码,包括Hilbert曲线,高精度计,π值计公式,取石子游戏,趣味等式填数游戏3则,验证四色定理等...
    李学武提交的C语言源代码,包括Hilbert曲线,高精度计算,π值计算公式,取石子游戏,趣味等式填数游戏3则,验证四色定理等- Li Xuewu submits the C language source code, including the Hilbert curve, the high accuracy computation, pi the value formula, takes the gravel game, the interest equality fills in the number to play 3 pieces, confirms four colors theorems and so on
    2023-03-22 20:00:03下载
    积分:1
  • 黄金分割,抛物线插值,单行替换是机械优化设计中的三中重要方。...
    黄金分割法,抛物线插值法,单行替换法是机械优化设计中的三中重要方法。-Golden section method, parabolic interpolation method, one-way is to replace mechanical optimal design method of the three most important.
    2022-01-25 23:40:14下载
    积分:1
  • simple cat
    简单的猫捉老鼠游戏-simple cat-and-mouse game
    2022-07-01 07:46:02下载
    积分:1
  • 一个实验,是我们老师在实验课程上让我们做的 我就写了
    一个实验,是我们老师在实验课程上让我们做的 我就写了-an experiment, we teachers in experimental courses allow us to do, I wrote an
    2022-07-01 23:59:39下载
    积分:1
  • 这是一个追赶
    这是一个追赶法的算法-This is a law to catch up with the algorithm
    2022-05-18 13:05:24下载
    积分:1
  • Kruscal algorythm
    这是kruskal算法,用于计算图中的最小展开式3。它是用java编程的,包含一个使用javaswing技术的GUI。
    2022-02-12 03:06:08下载
    积分:1
  • 一个对称三对角矩阵特征值计
    computes the eigenvalues of a symmetric tridiagonal * matrix T. The user may ask for all eigenvalues, all eigenvalues in the half-open interval (VL, VU], or the IL-th through IU-th eigenvalues.-computes the eigenvalues of a symmetric tr idiagonal* matrix T. The user may ask for all eig envalues. all eigenvalues in the half-open interval (VL. VU], or the IL-th through IU-th eigenvalues.
    2022-03-19 01:45:05下载
    积分:1
  • a戈圆顶进行压力进aksjdf;落叶归根压力 暴露地
    戈圆顶进行压力进aksjdf;落叶归根压力 暴露地 戈圆顶进行压力进aksjdf;落叶归根压力 暴露地 戈圆顶进行压力进aksjdf;落叶归根压力 暴露地 戈圆顶进行压力进aksjdf;落叶归根压力 暴露地 戈圆顶进行压力进aksjdf;落叶归根压力 暴露地 戈圆顶进行压力进aksjdf;落叶归根压力 暴露地
    2022-08-16 08:25:50下载
    积分:1
  • 贪恋求解01背包
    改进的背包问题:给定一个超递增序列和一个背包的容量,然后在超递增序列中选(只能选一次)或不选每一个数值,使得选中的数值的和正好等于背包的容量。 代码思路:从最大的元素开始遍历超递增序列中的每个元素,若背包还有大于或等于当前元素值的空间,则放入,然后继续判断下一个元素;若背包剩余空间小于当前元素值,则判断下一个元素
    2022-09-27 09:10:02下载
    积分:1
  • 把秒生成时间格式
    把秒生成时间格式-put seconds generation time format
    2022-02-02 16:46:25下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载