《精通正则表达式》笔记三
0x00 正则表达式原理
正则表达式有两种引擎,nfa与dfa,前者是非确定有限自动机,后者是确定有限自动机。前者以表达式为根据,来匹配文本,而后者以文本为根据,反过来匹配表达式。由此,前者具有可根据正则表达式灵活控制匹配过程的特点,而后者具有速度快的特点(最对只对文本处理一次)
本文分析nfa原理:
①从文本的最左边一直到最右边,匹配正则表达式
②对于量词或者多选结构,采用回溯法,如最后匹配失败,开始往前回溯
如果有多个可选规则,则都是从当前位置从第一个规则开始匹配,能匹配条忽略其余,不能则使用下一个规则,如果后续匹配失败,则回溯使用其他可选规则