这是一个理论上的计算机科学问题(计算理论)。
我知道RegExps需要很长的时间来计算。然而,从计算理论中我们知道,与正则表达式的匹配可以在几个时钟周期内快速完成。
如果RegExps等价于有限自动机,为什么RegExps有(或需要)超时方法?使用DFA,匹配的计算时间可以非常快。
RegExps指的是主要语言中的正则表达式模式匹配类;JavaScript、C#等。
常见的RegExps ("regex"s)不等同于自动机理论中的正则表达式(即正则语言)吗?
有关示例,请参见:如何超时Regex操作以防止挂在.NET 4.5中?和Regex模式灾难性回溯。
如果Regexp的匹配需要回溯,这意味着它们不等同于正则表达式。
如果“Regexp”捕获的语言不是常规语言,那么历史上为什么(出于必要)对它们进行扩展?
如果由此产生的DFA将需要一个庞大的州?
https://stackoverflow.com/questions/57731835
复制相似问题