Ruby 如何在树顶peg中定义{min,max}匹配

Ruby 如何在树顶peg中定义{min,max}匹配,ruby,regex,parsing,treetop,Ruby,Regex,Parsing,Treetop,使用Ruby的正则表达式,我可以编写/[0-9]{3,}/我不知道如何在treetop中编写它,除了: rule at_least_three_digit_number [0-9] [0-9] [0-9]+ end 树梢是否有“匹配[至少是最匹配的]n”规则?看起来PEGs没有一些再方便的操作符,但作为回报,你会得到一个更强大的表达式匹配器。 还提供了通用重复计数(最小、最大) "福"2。。匹配“foo”两次或两次以上 “foo”3..5与“foo”的匹配次数为3到5次 “foo”…4个匹

使用Ruby的正则表达式,我可以编写/[0-9]{3,}/我不知道如何在treetop中编写它,除了:

rule at_least_three_digit_number
  [0-9] [0-9] [0-9]+
end

树梢是否有“匹配[至少是最匹配的]n”规则?

看起来PEGs没有一些再方便的操作符,但作为回报,你会得到一个更强大的表达式匹配器。

还提供了通用重复计数(最小、最大)

"福"2。。匹配“foo”两次或两次以上

“foo”3..5与“foo”的匹配次数为3到5次

“foo”…4个匹配的“foo”从零到四次


(关闭并重新打开以清除标志,因为副本已被OP删除)我相信这是一个实现问题,如果实现允许,可以肯定地编写
a{2,3}
,而不是
aa/aaa
(treetop没有afaik)。不,使用treetop是可能的。见卢克的答案。