Rebo / Red parse:是否可以在嵌入嵌套div的两个标记之间进行复制

时间:2018-04-29 16:32:51

标签: parsing rebol red

Rebol/Red parse: how to copy between 2 marks之后,让我们假设我实现了用带有嵌套div的复杂解析规则的某些标记来标记一个字符串(无论该规则是什么),是否有一般方法在mark1和mark2之间进行复制,至少这种嵌套的div示例是否有特定的方法:

    {
        <div>
        a ; <- mark1
            <div>
                b
            </div>
            <div>
            c
            </div>
        d ; <- mark2
        </div> 

        <div>
        e
            <div>
                f
            </div>
            <div>
            g
            </div>
        h
        </div>  
    }


    rule: [
        mark1:
        ...
        mark2:
        copy mark1 to mark2
    ]

1 个答案:

答案 0 :(得分:1)

这已经显示的解决方案没有问题,但是如果你想让它变得更复杂一点,你可以回到src中已定义/标记的点,如本例所示。

src: {1234567890abcdefghijklmnopqrstuvxyz}
>> parse src [ skip mark: to "a" mark2:  :mark   to "3" mark1: to end]  
== true
>> mark1
== "34567890abcdefghijklmnopqrstuvxyz"

注意 :mark 它将指针设置回先前定义的点。

所以你前一个问题的答案看起来就像那样

rule: [
    to "b" mark1: thru "e" mark2: 
    :mark1 copy text to mark2
]

根据您的意愿,将“b”和“e”替换为“a”和“d”。