假设我有一种正则表达式语言,支持文字、正负字符类、有序交替、贪婪量词?
、*
和+
,以及非贪婪量词??
、*?
和+?
。(这本质上是 PCRE 的一个子集,没有反向引用、环视断言或其他一些更高级的位。)用无序交替替换有序交替会降低这种形式主义的表达能力吗?
(无序交替——有时也称为“无序选择”——满足 L(S|T) = L(S) + L(T),而有序交替满足 L(S|T) = L (S) + (L(T) - { a in L(T) : a extends some b in L(S) }). 具体来说,如果交替是无序的,模式a|aa
将匹配字符串a
,aa
但前提a
是交替已订购。)
换句话说,给定一个包含有序交替的模式 S,该模式是否可以重写为不包含有序交替(但可能是无序交替)的等效模式 T?
如果文献中已经考虑过这个问题,我将不胜感激任何人都可以提供的任何参考资料。我几乎没有找到关于扩展正则表达式形式的表达能力的理论工作(除了关于反向引用如何将你从常规语言转移到无上下文语法的常见事情之外)。