有没有办法比较两个或多个正则表达式规则并相应地找出它们的严格性,理想情况下在 php 中,但如果这存在于不同的平台/语言中,我想知道如何实现它的概念,并相应地在 php 中对其进行编码
谢谢 Prithwiraj
这是一个不平凡的问题。您需要解析正则表达式并确定每个标记有多少替代匹配项,并且您可能需要递归地执行此操作以正确判断嵌套量词如何影响复杂性。
通过查看量词,您可以得到一个非常粗略的估计,但这也不是微不足道的。
??
, ?+
, ?
, {0,1}?
,{0,1}+
和{0,1}
每一个都允许一个选择|
, 计算在同一层级的嵌套中,每个允许 n+1 个备选方案{n,m}?
,{n,m}+
并且{n,m}
每个都允许m-n
选择*+
, *?
, *
, ++
, +?
, +
, {n,}?
,{n,}+
和{n,}
每一个都允许无限的选择还有许多其他因素决定了复杂性/“严格性”,所以你通过这种方法得到的或多或少是一个“零近似”......