雷博尔PARSE规则来匹配到至少2#[无]的第一次出现小号

问题描述 投票:0回答:1

similar question字符串的情况。

在R3-α,我试图适应@sqlab响应于方框情况下:

parse [x x x x #[none] a #[none] #[none] b] [to [none! none!] ??]

我希望??: [#[none] #[none] b],但得到

** Script error: PARSE - invalid rule or usage of rule: none!

这是正确的结果和我的期望错了吗?或者这是一个错误吗?

parsing rebol
1个回答
1
投票

我可以只显示为红色和Rebol2的解决方案。正如在规则的话都减少了自动,你必须保护他们。

红色

>> parse [x x x x _ a _ _ b] [to [ '_ '_] y: ]
== false
>> 
>> y
== [_ _ b]

Rpli

>> parse [x x x x _ a _ _ b] [some [r: [ '_ '_  ] (y: r) | skip]   ]
== true
>> y
== [_ _ b]

这个问题由HostileFork编辑后红的解决方案看起来像

>> parse [x x x x #[none] a #[none] #[none] b] [to [none! none!] y:] 
== false
>> y
== [none none b]
>> 

例如,根据在giuliolunati的注释的问题

>> parse  [x x x x 0 a 1 2 b]  [to [integer! integer!] y:]
== false
>> y
== [1 2 b]
© www.soinside.com 2019 - 2024. All rights reserved.