1

Regexp::Grammars文档中:

标记和规则之间的区别在于,标记完全按照普通 Perl 正则表达式处理其中的任何空格。也就是说,如果 /x修饰符有效,则忽略标记中的空白序列,否则匹配相同的空白字符序列(如果/x无效)。

在规则中,大多数空格序列被视为匹配隐式子规则,该子规则<.ws>自动预定义为匹配可选空格(即\s*)。

...

换句话说,规则如下:

<rule: sentence>   <noun> <verb>
               |   <verb> <noun>

相当于添加了非捕获空白匹配的标记:

<token: sentence>  <.ws> <noun> <.ws> <verb>
                |  <.ws> <verb> <.ws> <noun>

有没有办法让规则忽略领先的隐含<.ws>?在上面的示例中,它相当于:

<token: sentence>  <noun> <.ws> <verb>
                |  <verb> <.ws> <noun>
4

0 回答 0