笔记-正则表达式的2种引擎
正则表达式的引擎分为2种,一种是DFA引擎,一种是NFA引擎。
DFA引擎是文本主导的,对于要匹配的文本,记录2个pointer,一个是文本当前匹配的位置,另一个记录正则表达式中的匹配位置,这可能有好几个位置
NFA引擎是正则表达式主导的,也记录2个pointer,一个是文本当前匹配的位置,另一个记录正则表达式中的匹配位置,这只有一个。当当前路径无法匹配时,通过保存的备份记录和回溯来继续进行匹配
优劣:
1,DFA引擎需要的编译时间比NFA长
2。DFA引擎运行的时间比NFA短,对于每个文本,DFA只需要匹配一次,没有回溯
3。NFA提供更多可以控制的结构,比如,环视,固化分组,忽略优先,获取匹配的文本等,匹配同样文本的NFA正则表示式运行效率有很大差别,但是匹配同样文本的DFA正则表达式则差别不大。
相关推荐
wangzhaotongalex 2020-10-20
wyq 2020-11-11
TLROJE 2020-10-26
风雨断肠人 2020-10-13
duanqingfeng 2020-09-29
rechanel 2020-11-16
cshanzhizi 2020-10-16
luofuIT成长记录 2020-09-22
phphub 2020-09-10
taomengxing 2020-09-07
MaggieRose 2020-08-19
flyingssky 2020-08-18
山水沐光 2020-08-18
jyj00 2020-08-15
AHuqihua 2020-08-09
山水沐光 2020-08-03