笔记-正则表达式的2种引擎

  正则表达式的引擎分为2种,一种是DFA引擎,一种是NFA引擎。
  DFA引擎是文本主导的,对于要匹配的文本,记录2个pointer,一个是文本当前匹配的位置,另一个记录正则表达式中的匹配位置,这可能有好几个位置
  NFA引擎是正则表达式主导的,也记录2个pointer,一个是文本当前匹配的位置,另一个记录正则表达式中的匹配位置,这只有一个。当当前路径无法匹配时,通过保存的备份记录和回溯来继续进行匹配
  优劣:
  1,DFA引擎需要的编译时间比NFA长
  2。DFA引擎运行的时间比NFA短,对于每个文本,DFA只需要匹配一次,没有回溯
  3。NFA提供更多可以控制的结构,比如,环视,固化分组,忽略优先,获取匹配的文本等,匹配同样文本的NFA正则表示式运行效率有很大差别,但是匹配同样文本的DFA正则表达式则差别不大。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值