rebol - 使用带解析的嵌套规则

标签 rebol rebol3

我正在尝试解析一些格式如下的数据。

data: [a b x b x x b a a x x b b x ]

我需要它按顺序提取 a 和 b,并对每个 a 和 b 执行不同的操作。

预期的输出是:

a
b
b
b
a
a
b
b
== true

到目前为止我已经想到了这个,但是对于重复的 a's 是失败的。

parse data [
  some [
    thru 'a (print "a")
    some [
      any [
        to 'b (print "b")
      ]
      to 'a
    ]
  ]
  to end
]

有什么指点吗?谢谢

最佳答案

>> data: [a b x b x x b a a x x b b x ]
== [a b x b x x b a a x x b b x]

>> parse data [ some [ 'a (print "a") | 'b (print "b") | skip ] ]
a
b
b
b
a
a
b
b
== true

关于rebol - 使用带解析的嵌套规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16051003/

相关文章:

android - 如何从 "Android Terminal Emulator"调用 Rebol 解释器?

Rebol解析: dealing with whitespace and copy var

rebol - block 的唯一性不会删除重复项

rebol3 - 如何解释 Rebol 3 中的统计数据/显示

unicode - Rebol 3 R3-GUI字段支持非ascii字符串输入吗?

Rebol 2 端口绑定(bind)到多个 IP

rebol - 从 Rebol 中的系列中删除重复的对象

rebol - 仅使用 SKIP 的 PARSE 中的替代规则未输出预期结果

sockets - Rebol世界上最小的Http服务器: why first wait listen-port?

serial-port - 在 Rebol3 中读取串口