Parsing 在Rebol解析中,如何检查输入的开始?

Parsing 在Rebol解析中,如何检查输入的开始?,parsing,rebol,Parsing,Rebol,我需要一个规则,让我们在开始时调用它,它匹配输入的开始 也许它存在,或者如何实现它 我想工作的例子: 解析“x”[开始时的“x”]=>匹配 解析“{some other chars}x”[到开始“x”处的“x”]=>不匹配 动机: 我正在尝试解析一些类似标记的模式,其中一个“*” 开始强调,但仅当在空格之后或在 正文: [开始时的空格]强调 使用@hostilefork解决方案,我可以写: [到“*”位置:[如果(头?位置)|(位置:后位置):位置空间]跳过…]没有这样的规则。但是如果有,你必须

我需要一个规则,让我们在开始时调用它,它匹配输入的开始

也许它存在,或者如何实现它

我想工作的例子:

  • 解析“x”[开始时的“x”]=>匹配
  • 解析“{some other chars}x”[到开始“x”处的“x”]=>不匹配
  • 动机:

    我正在尝试解析一些类似标记的模式,其中一个“*” 开始强调,但仅当在空格之后或在 正文: [开始时的空格]强调

    使用@hostilefork解决方案,我可以写:
    [到“*”位置:[如果(头?位置)|(位置:后位置):位置空间]跳过…]

    没有这样的规则。但是如果有,你必须定义你是否特别想知道它是在一个系列的开始…还是在要求你开始解析的开始。e、 g.这是成功还是失败

    parse (next "cab") [to "a" begin skip "b"]
    
    它不在系列的开头,但解析位置没有移动。这算是开始吗

    如果您只想在本系列的开头进行测试:

    [to "a" pos: if (head? pos) ...]
    
    您必须在开始时捕获该位置,或者了解它,以查看解析位置是否已前进:

    [start: to "a" pos: if (pos = start) ...]
    

    也许不完全是你想要的,但找到第一个匹配可以通过以下步骤完成

    你必须搜索“b”后接“a”的补语模式

    需要进行一些修改以匹配第一个字符为“a”的情况。
    点击
    将定位在“a”后面的字符处。

    我不清楚这个问题。[to“a”]规则是否将光标定位在输入“a”的开头(如果存在)?@Edoc我指的是整个输入的开头,因此规则听起来“转到第一个“a”,检查它是否在数据的开头,如果是,则跳过,否则失败”。您能否举几个数据或输入的示例,因为我不确定您的要求是什么。有很多可能的解决方案。如果你的数据和输入的意思是一样的,那真的是一样的simple@sqlab添加示例
    >> text-to-searh: "jjjj ball  adran"
    >> b*: complement charset "b"
    >> parse/all text-to-search [ any [ b* #"a" | "a" hit:  to end | skip ] ]
    >> probe hit
    "ll  adran"