关于PEG的维基百科文章指出:
之间的根本区别 无上下文语法和解析 表达语法是PEG的 订购选择运算符。如果 第一个替代成功,第二个 替代被忽略了。如此有序 选择不是可交换的,不像 在无上下文中的无序选择 语法和正则表达式。
但是this question已经发现,如果替代品是彼此的子串;然后正则表达式不符合unordered choice
的行为。维基在大多数情况下是正确的,但不会处理这种边缘条件。我的评估是否正确?
答案 0 :(得分:1)
“regex”!=“正则表达式”。后者纯粹而简单,只对理论计算机科学家和符号数学家感兴趣。
“ordered choice”是正则表达式处理器的一个实现选项。
你说“如果替代品是彼此的子串;那么正则表达式不会按照无序选择行事”。
更正确的说法是“某些正则表达式处理器使用有序选择进行所有替换。当另一个替代是另一个的前缀时,这变得明显。”