3

关于PEG的维基百科文章指出:

上下文无关文法和解析表达式文法的根本区别在于 PEG 的选择运算符是有序的。如果第一个备选方案成功,则第二个备选方案将被忽略。因此,有序选择不是可交换的,这与上下文无关文法和正则表达式中的无序选择不同。

但是这个问题已经发现,如果替代品是彼此的子串;那么正则表达式的行为不符合unordered choice. wiki 在大多数情况下是正确的,但没有处理这种边缘条件。我的评估是否正确?

4

1 回答 1

1

“正则表达式”!=“正则表达式”。后者纯粹而简单,只对理论计算机科学家和符号数学家感兴趣。

“有序选择”是正则表达式处理器的一个实现选项。

你说“如果替代品是彼此的子串;那么正则表达式不会根据无序选择行事”。

更正确的说法是“一些正则表达式处理器使用有序选择来进行所有替换。当一个替代是另一个的前缀时,这变得很明显。”

于 2011-05-06T05:56:11.987 回答