不是测试所有的或者语句,而是查看第一个字符是否匹配。标题解释了这一切。
答案 0 :(得分:1)
处理正则表达式时,它首先转换为非确定性有限状态自动机(NFA)。然后,NFA被转换为确定性有限状态自动机(DFA),其通常导致更多数量的状态。第三步是将DFA转换为具有最少状态数的“最小”DFA。
当且仅当它们导致相同的最小DFA时,两个正则表达式是等效的。因此,明显等效的两个正则表达式ab|ac|an|db|df
和(a(b|c|n)|d(b|f))
会产生相同的最小DFA,并将以相同的速度执行模式匹配。没有特别的理由偏爱一个而不是另一个。