re2正则表达式引擎学习(四)
DFA.cc
Workq 与 State类似,都是NFA的状态集合(即DFA的状态,一个DFA状态中包括多个NFA状态) 但Workq在过程中使用,完成后根据是否相同建立对应的State来存储(即Workq在过程中使用,完成后将Workq转化为State并存放到State中
DumpWorkq 打印工作队列中的内容: 调试打印格式: 1,2,3|4,5,6
DumpState 打印State中的内容: 调试打印格式:(地址) 1,2,3|4,5,6 flag=xxx ID=xxx
WorkqToCachedState 将Workq转换为State,当已经有对应的State时不转换 调用CachedState完成 调试打印格式:WorkqToCachedState 1,2,3|4,5,6 [flag] CachedState输出
CachedState 判断转换来的State是否在缓存中,若在就不再重复建立state,若不在就加入缓存 调试打印格式: -cached -> 1,2,3|4,5,6(缓存中已有) / -> 1,2,3|4,5,6(缓存中没有)
StateToWorkq 将对应的State格式转换为Workq格式
AddToQueue 在Workq中加入一个指令
RunWorkqOnByte oldq接受一个字符c转移到newq 调试打印格式:1,2,3|4,5,6 on c [flag] -> 4,5,6|7,8,9 [*ismatch]
RunStateOnByte函数 = StateToWorkq + RunWorkqOnByte + WorkqToCachedState
AnalySearch函数主要调用AnalySearchHelper来实现。主要就是找到开始状态集合,然后让开始状态集合一次对Bytemap进行匹配来设立StartInfo开始标示
首先调用AnalySearch函数来确定开始状态,然后对状态队列中的所有状态,从开始状态开始,对Bytemap的每个字节类进行RunWorkqOnByte,新状态若没有就建立新状态,并加入状态队列,直到状态队列中的所有状态都进行了字节类匹配
re2正则表达式引擎学习(四)相关推荐
- RE2正则表达式引擎资料
2019独角兽企业重金招聘Python工程师标准>>> 官网 RE2,C++正则表达式库实战 <自动机理论 语言和计算导论> 转载于:https://my.oschina ...
- ## 虚幻四引擎学习——初学者
虚幻四引擎学习--初学者 **前言:**最近想尝试下虚幻四引擎,以博客来记录自己的学习心得,如果我写的能为后来者提供些许帮助,那我不胜荣幸 一,创建你的首个项目 1在官网下载虚幻四引擎并安装(官网地址 ...
- Python的regex模块——更强大的正则表达式引擎
Python自带了正则表达式引擎(内置的re模块),但是不支持一些高级特性,比如下面这几个: 固化分组 Atomic grouping 占有优先量词 Possessive quantifi ...
- 实现一个正则表达式引擎in Python(一)
前言 项目地址:Regex in Python 开学摸鱼了几个礼拜,最近几天用Python造了一个正则表达式引擎的轮子,在这里记录分享一下. 实现目标 实现了所有基本语法 st = 'AS342abc ...
- perl 正则表达式 引擎_Perl 5引擎概述
perl 正则表达式 引擎 正如我在" 我的DeLorean运行Perl "中所述,切换到Perl极大地提高了我的开发速度和可能性. 在这里,我将更深入地研究Perl 5的设计,以 ...
- ue4 迁移模型_UE4虚幻引擎学习云笔记(六)-关卡设计入门-[5.地形快速入门]
[六.关卡设计入门(Level Designer Quick Start)] 19-09-29 UE4虚幻引擎学习云笔记(六)-关卡设计入门zhuanlan.zhihu.com UE4虚幻引擎学习云 ...
- velocity(vm)模板引擎学习介绍及语法
velocity模板引擎学习 velocity与freemaker.jstl并称为java web开发三大标签技术,而且velocity在codeplex上还有.net的移植版本NVelocity,( ...
- 1000行代码徒手写正则表达式引擎【1】--JAVA中正则表达式的使用
简介: 本文是系列博客的第一篇,主要讲解和分析正则表达式规则以及JAVA中原生正则表达式引擎的使用.在后续的文章中会涉及基于NFA的正则表达式引擎内部的工作原理,并在此基础上用1000行左右的JAVA ...
- Elasticsearch学习(四) - 查询①
title: Elasticsearch学习(四)-查询① date: 2020-10-29 tags: Elasticsearch Elasticsearch学习(四)-查询① categories ...
- Hazel引擎学习(五)
我自己维护引擎的github地址在这里,里面加了不少注释,有需要的可以看看 Render Flow And Submission 背景 在Hazel引擎学习(四),从无到有,绘制出了三角形,然后把相关 ...
最新文章
- NLP实践:对话系统技术原理和应用
- linux mysql数据库优化_MySQL_Linux下MySQL数据库性能调优方法,以下的环境具备一定的代表性 - phpStudy...
- jvm二:类加载,连接,初始化
- 可变数组NSMutableArray
- 封装caffe-windows-cpu(支持模型有多个输出)
- python中pcolor_python中pcolormesh-女性时尚流行美容健康娱乐mv-ida网
- 数组和指针(sizeof两者的关系)
- Qt QMutexLocker_自动解锁的机制
- kafka的消费顺序_Kafka原理和实践云平台技术栈13
- php远程下载头像,Laravel 项目中 远程把图片下载到本地
- html 判断输入的是手机号码,用js验证手机号码格式是否正确
- 代码质量分析利器之SonarQube【史上最全】
- django_jquery_ajax二级联动菜单
- 英雄联盟怎么解除小窗口_英雄联盟手游剑姬怎么玩-英雄联盟手游剑姬玩法介绍...
- 一篇挺有意思的文章(转自CSDN)
- 为 VS 2012 打包 MSDN 在线文档为磁盘安装源
- linux+创建一个v文件共享,win10与Ubantu双系统:Linux下开启FTP服务器与创建无线热点(实现文件共享)...
- 开发者测评:相比 Harbor,我选择 ACR 的三点原因
- 深度学习面试题:原始GAN 在实际应用中存在哪些问题?
- Symbian 读取手机型号