这种对正则表达式的替代方案的描述是错误的吗?

时间:2011-05-06 03:28:24

标签: python regex peg

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

  

之间的根本区别   无上下文语法和解析   表达语法是PEG的   订购选择运算符。如果   第一个替代成功,第二个   替代被忽略了。如此有序   选择不是可交换的,不像   在无上下文中的无序选择   语法和正则表达式。

但是this question已经发现,如果替代品是彼此的子串;然后正则表达式不符合unordered choice的行为。维基在大多数情况下是正确的,但不会处理这种边缘条件。我的评估是否正确?

1 个答案:

答案 0 :(得分:1)

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

“ordered choice”是正则表达式处理器的一个实现选项。

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

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