[正则]表达式的匹配原理2
表达式主导与文本主导
NFA引擎 :表达式主导
当用he(te|nigh|llo)匹配文本 hello world 时 ,he会先从括号中提取te然后nigh然后llo ,当进行到时llo时整个表达式匹配成功。这种表达式的控制权在不同的元素之间转换,所以称它为“表达式主导”
DFA引擎:文本主导
当用he(te|nigh|llo)匹配文本 hello world 时 ,引擎会同时对te,nigh,llo进行检查。这种方式为“文本主导”,是因为它扫描的字符串中的每个字符都对引擎进行了控制。
比较NFA与DFA
一般情况下DFA比NFA要快。
NFA为创造性思维提供了丰富的施展空间。一个调教好的表达式能带来许多收益,调教的不好则会带来严重后果。
注:NFA类似手动挡汽车