
re2正则表达式引擎学习
文章平均质量分 60
雲開
这个作者很懒,什么都没留下…
展开
-
re2正则表达式引擎学习(二)
1.先看Regexp.h Regexp.cc 了解Regexp语法树的结构和一些后面建立语法树所需要使用的的一些数据类型定义2.Parse.cc中定义了一个ParseState的堆栈结构来存储Regexp结构。辅助建立完整的语法树建立语法树的过程类似于一个词法分析器 (stringpiece(类似string类型,可看做为string类型) -> Regexp类型每从正原创 2015-07-29 10:10:44 · 1777 阅读 · 0 评论 -
re2正则表达式引擎学习(四)
DFA.ccWorkq 与 State类似,都是NFA的状态集合(即DFA的状态,一个DFA状态中包括多个NFA状态) 但Workq在过程中使用,完成后根据是否相同建立对应的State来存储(即Workq在过程中使用,完成后将Workq转化为State并存放到State中DumpWorkq 打印工作队列中的内容: 调试打印格式: 1,2,3|4,5,6DumpState 打印Sta原创 2015-07-29 11:22:08 · 1294 阅读 · 0 评论 -
re2正则表达式引擎学习(三)
prog.h 和 prog.cc定义了几种基本的数据结构:Bitmap(用bit位来标记某个元素的值),主要用于bytemap字符到字符集合的计算,划分字符区间:[00-ff],[61-61],[62-62],[63-63]InstOp(几种基本的指令操作码,与Inst对应),EmptyOp(^,$,\A,\z,\b,\B),Inst表示指令,所有的正则表达式都可以由这几种指令所构原创 2015-07-29 10:53:50 · 2316 阅读 · 0 评论 -
re2正则表达式引擎学习(一)
re2是Google公司开发的一款正则表达式引擎。可以实现正则表达式的匹配,且比较小巧,开源,适合学习主要想将re2的正则表达式匹配过程移植到GPU上,在GPU上实现正则表达式的匹配,提高匹配的速度。同时实现多模匹配模式,即将多个正则表达式组合为一个大的正则表达式。当进行匹配时,返回匹配了第几个正则表达式原创 2015-07-29 10:59:59 · 3612 阅读 · 0 评论 -
re2正则表达式引擎学习(五)
改写为DFA匹配时的运行过程。首先打印出来的是NFA的结构,然后将NFA的结构转化为DFA的结构,构建对应的DFA转移矩阵。然后根据转移矩阵进行匹配运行时,正则表达式为ab*c|d,匹配的字符串为dab*c|d9. alt -> 6 | 86. alt -> 1 | 58. byte [00-ff] -> 91. byte [61-61] -> 35. byte原创 2015-07-29 15:31:59 · 2141 阅读 · 0 评论