加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 当一个字符串与正则表达式匹配时,幕后发生了什么

发布时间:2020-12-13 21:53:57 所属栏目:百科 来源:网络整理
导读:我有兴趣知道使用什么样的算法来匹配它,以及它们是如何优化的,因为我想有些正则表达式会产生大量可能的匹配,这些匹配可能会在一个效果不佳的正则表达式解析器上造成严重问题. 另外,我最近发现了ReDoS的概念,为什么诸如(a | aa)或(a | a?)之类的正则表达式引
我有兴趣知道使用什么样的算法来匹配它,以及它们是如何优化的,因为我想有些正则表达式会产生大量可能的匹配,这些匹配可能会在一个效果不佳的正则表达式解析器上造成严重问题.

另外,我最近发现了ReDoS的概念,为什么诸如(a | aa)或(a | a?)之类的正则表达式引起问题?

编辑:我在C#和Python中使用过它们,所以这就是我在考虑这个问题时的想法.我假设Python是用C语言编写的,就像解释器的其余部分一样,但我不知道C#

有两种正则表达式引擎:NFA和DFA.我很生疏,所以我不敢记忆中的具体细节.但是,通过算法的 Here is a page.一些解析器在表达不佳的情况下表现更好.一本关于这个主题的好书(坐在我的书架上)是 Mastering Regular Expression.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读