首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Regexp有一个超时方法,而理论上它们不应该?

为什么Regexp有一个超时方法,而理论上它们不应该?
EN

Stack Overflow用户
提问于 2019-08-30 18:45:04
回答 3查看 263关注 0票数 1

这是一个理论上的计算机科学问题(计算理论)。

我知道RegExps需要很长的时间来计算。然而,从计算理论中我们知道,与正则表达式的匹配可以在几个时钟周期内快速完成。

如果RegExps等价于有限自动机,为什么RegExps有(或需要)超时方法?使用DFA,匹配的计算时间可以非常快。

RegExps指的是主要语言中的正则表达式模式匹配类;JavaScript、C#等。

常见的RegExps ("regex"s)不等同于自动机理论中的正则表达式(即正则语言)吗?

有关示例,请参见:如何超时Regex操作以防止挂在.NET 4.5中?Regex模式灾难性回溯

如果Regexp的匹配需要回溯,这意味着它们不等同于正则表达式。

如果“Regexp”捕获的语言不是常规语言,那么历史上为什么(出于必要)对它们进行扩展?

如果由此产生的DFA将需要一个庞大的州?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57731835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档