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

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

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

  • 瑞萨主控四轴飞行器
    领航者飞控是匿名团队针对飞控爱好者推出的一款完全开源的飞控产品,使用最常见,资料也是相当丰富 的 STM32F407 芯片作为主控芯片,并且提供完全开源的飞控整体工程文件(开发环境:KEIL),玩家拿到源码后直接编译下载即可。 强大的主控芯片(168Mhz,1M Flash)提供了强大的性能冗余,可以支持进行多种二次开发。并且飞控预留多个拓展接口(串 口, 可以外接多种串口设备,例如 GPS、光流、超声波、wifi,甚至是树莓派、X86 等等) 。 使用匿名完善的强大的软硬件平台进行学习 和二次开发,可以起到事半功倍的效果。目前匿名独家开源代码已经实现效果良好的 姿态自稳效果,并且已经开源气压计定高、超声 波定高代码,买家在此基础上只要加入外部控制环,比如 GPS、光流等,即可实现定 点悬停、航线飞行等等功能。
    2022-05-07 21:22:36下载
    积分:1
  • 快速傅立叶变换,非常简洁快速。测试与mablab中快速傅立叶变换效果相当
    快速傅立叶变换,非常简洁快速。测试与mablab中快速傅立叶变换效果相当-Fast Fourier Transform, a very simple style and fast speed. Testing and fast Fourier transform mablab in effect a considerable
    2022-01-24 09:30:48下载
    积分:1
  • keil数码管逐个亮
    在keil编程软件上实现对数码管的检测,P1口接数码管,500ms的间隔时间逐个点亮。
    2023-09-04 00:15:03下载
    积分:1
  • 回溯线搜索
    此程序通过凸优化中的armigo规则的回溯线搜索方法来寻找函数的最佳值。对于输入,此程序是全局aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    2022-01-26 03:26:17下载
    积分:1
  • QR方法求实系数多项式方程的全部根
    QR方法求实系数多项式方程的全部根-QR method realistic polynomial equation coefficients of all-
    2022-03-11 04:15:56下载
    积分:1
  • 百钱买百鸡算法设计和分析
    应用背景方法一:伪代码输入:n只鸡的个数 输出:公鸡、母鸡和小鸡的个数1、初始化解的个数count=0; 2、循坏变量从x从0~n/5(取整);    2.1循环变量y从0~n/3(取整);       2.1.1 循环变量z从0~n;       2.1.2 如果5*x+3*y+z/3==n && x+y+z==n,则count++;输出x、y、z的值;       2.1.3  y++;
    2022-03-20 10:38:58下载
    积分:1
  • GIS训练算法的python实现
    下面是GIS训练算法的python实现,代码不到100行。
    2022-09-19 01:25:03下载
    积分:1
  • AD9854串行资料_内含代码
    应用背景AD9854串行实现方式,C语言编写的代码,移植性很强。供参考!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!关键技术电子设计大赛专用文件!!!!!!电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件电子设计大赛专用文件
    2022-06-26 10:09:50下载
    积分:1
  • The software is capable of vibration signal acquisition and the same time spectr...
    该软件能够对振动信号进行采集并同时进行频谱分析,对波形进行存储,处理的过程中可以对不需要的频率进行去除。-The software is capable of vibration signal acquisition and the same time spectrum analysis, the waveform storage, the process can not remove the frequency.
    2022-03-16 08:57:36下载
    积分:1
  • 前缀跨度
    PrefiSpan---执行的前缀预测的序列模式挖掘 作者: 福田康夫塔北 < tabei@cb.k.u-tokyo.ac.jp > 计算生物学学系 前沿科学研究生学院 东京大学 许可证: GPL2 (Gnu 通用公共许可版本 2) 参考资料: PrefixSpan: 挖掘序列模式有效地由前缀预测模式的增长 健裴、 珈伟韩、 扎 Mortazavi asl、 海伦 · 平托、 启明陈、 Umeshwar 达亚尔和梅春许 IEEE 计算机协会,2001 年,页 215 要求: C + + 编译器使用 STL (标准模板库)。 安装: %使 用法: ./ lcm [选项] 数据 选项: -min_sup NUM: 设置最低支持 (默认值: 1) -max_pat NUM: 设置最大模式长度 (默认: 无穷大) 输入数据的格式: 3 1 3 4 5 2 3 1 3 4 4 3 1 3 4 5 2 4 1 6 5 3 每一行对应于每个都有一个序列的交易记录由空格分隔的项目。 结果的格式: 项目集 (ids) 频率 项目集 (ids) 频率 项目集 (ids) 频率 ... 下面是一个示例: 1 (0 1 3 4): 4 1 3 (0 3): 2 1 3 4 (0 3): 2 1 3 4 5 (0 3): 2 1 3 5
    2022-02-22 05:28:49下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载