Regex 正则表达式中整词的最小DFA

Regex 正则表达式中整词的最小DFA,regex,dfa,Regex,Dfa,在为正则表达式创建DFA时,我注意到整个单词增加了状态的数量,即使从分析角度看,它们看起来类似于状态较少的正则表达式 例如,对我来说,a | b+看起来和hello | world一样+ 如果我有一个匹配的字符串,那么用a查找/替换hello,用b和viceversa查找/替换world将相当容易。所以我的问题是,为什么hello和world不算作单一状态?因为DFA使用更简单的状态定义实现起来非常简单,而代价是拥有更多的状态。您的建议可以很好地描述您希望DFA如何工作,并且与传统DFA有直接的

在为正则表达式创建DFA时,我注意到整个单词增加了状态的数量,即使从分析角度看,它们看起来类似于状态较少的正则表达式

例如,对我来说,a | b+看起来和hello | world一样+


如果我有一个匹配的字符串,那么用a查找/替换hello,用b和viceversa查找/替换world将相当容易。所以我的问题是,为什么hello和world不算作单一状态?

因为DFA使用更简单的状态定义实现起来非常简单,而代价是拥有更多的状态。您的建议可以很好地描述您希望DFA如何工作,并且与传统DFA有直接的对应关系。但它不允许你说更多的话

这与NFA的使用类似:NFA更容易设计和思考,但没有更多的功能,并且有一个定义良好的算法将它们再次转换为DFA,代价是引入状态

想象一下DFA使用单字符转换作为正则表达式的机器语言,这与正则表达式不同,从而变得迂腐