-
一个用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
-
签名并创建证书
签名认证 v1.0.2 吗?签署,并创建一种数字"拆封"的代码和内容,以保护软件出版商和用户,当他们下载的代码 !数字签名验证其来源和验证内容的完整性: CAPICOM 库上的小介绍: 简图的 CAPICOM 功能: ASN.1 编码和支持标准 PKCS # 7 支持智能卡承认 Windows 对称密钥加密非对称密钥加密的数字签名 (信封) 计算哈希值 — — 我喜欢它非常:) 此函数代码签名的验证码实用工具,以支持转换字符串和几代人的伪随机数的接口支持 CryptoAPI 和 CAPICOM 对象和反之亦然支持 X 509 证书支持存储的证书。搜索支持在商店内的证书策略,应用程序策略和模板支持导出通过 PFX 和 PKCS # 12 支持 AES 加密 (只能在 XP 上及以上) 的敏感信息快乐编码;)萨尔沃 Cortesiano (IT) 链接: http://www.microsoft.com/downloads/details.aspx?familyid=860EE43A-A843-462F-ABB5-FF88EA5896F6&displaylang=en http://www.wiscocomputing.com/articles/code-signing.htm---为一个完整的项目 (包含丢失的文件),以下载在此: http://www.netshadows.it/capicom.rar (4,51 MB)
- 2022-07-19 14:05:16下载
- 积分:1
-
WPF 代码行数统计 源代码
WPF 开发的 代码统计 器,主要统计代码的函数,不包括注释,支持C#/java/C++/C 源代码的统计,指定一个工程文件夹自动搜索目录下所有代码文件并统计文件数量和代码行数,以及总代码行数
- 2022-02-20 07:16:51下载
- 积分:1
-
含有线性插值, 样条插值,Gauss矩阵列主元消去法等算法的实现
含有线性插值, 样条插值,Gauss矩阵列主元消去法等算法的实现 -with linear interpolation, spline interpolation, Gauss matrix main-element elimination algorithm Law Implementation
- 2022-09-23 08:20:03下载
- 积分:1
-
导弹飞行虚拟现实仿真系统
应用背景在导弹武器系统的研制过程中,国内外都十分重视计算机仿真技术在型
号研制中的作用,从型号设计开始,到导弹出厂的整个研制过程,要根据不
同阶段的要求,完成不同的数字仿真实验"本课题就是在这种背景下提出的。
关键技术虚拟现实仿真技术自诞生以来,就在航空航天!军事!核工业中发挥着
不可替代的作用"计算机的飞速发展及其日益广泛的使用,计算机产生大量
的代表各种信息的数据(如仿真结果),由于缺乏对大量信息数据的有效分析
手段,大约有95%的信息被浪费,这严重阻碍了科学研究的进展"可视化技
术正是在这种情况下应运而生,可视化的本质是/用图形和图像来表征数据0,
它作为解释大量数据最有效的手段而率先被科学与工程计算领域采用,并逐
渐发展成为热门的研究领域"
- 2022-03-21 09:39:23下载
- 积分:1
-
ECC加密算法实现C源码
ECC加密算法实现C源码 ECC加密算法实现C源码 ECC加密算法实现C源码
- 2022-03-13 04:36:16下载
- 积分:1
-
语音编解码G711源码
G.711使用64Kbps的带宽,可将14bits转换成8bits。目前G.711有两个编码方式:一种是u-law又称mu-law,主要运用于北美和日本;另一种是a-law,主要运用于欧洲和世界其他地区。其中,a-law编码方式是为方便计算机处理而特别设计的。2008年3月国际电信联盟正式发布了最新的宽带语音编译码标准G.711.1。该代码是G711编解码软件,可以编译为动态库直接使用
- 2022-06-13 18:37:22下载
- 积分:1
-
snowball英语词干化
You can use this site at a number of levels:
- You can look at the stemming algorithm definitions themselves, and use them as templates for coding your own versions of stemmers in the computer language of your choice.
请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
- 2022-02-15 02:46:05下载
- 积分:1
-
first prepared MFC DLL, opening VC 6.0 = gt; File = gt; New = gt; Project = gt;...
先准备好MFC DLL,打开VC 6.0=gt;文件=gt;新建=gt;项目=gt;MFC AppWizzard(DLL),项目名Calc=gt;下一步=gt;完成。好吧,你在文件视图上打开工作区可以看到有Calc.h,计算cpp,stdafx.h,stdafx.cpp文件那四份文件。
- 2022-03-15 08:37:44下载
- 积分:1
-
g711
g711-pcm的音频编码VHDL源代码-g711-pcm audio coding VHDL source code
- 2022-07-15 04:33:18下载
- 积分:1