当Perl 6语法规则中的空白区域显着时,有人可以澄清吗?我正在通过反复试验来学习一些,但似乎无法在文档中找到实际的规则.
例1:
rule number {
<pm> \d '.'? \d*[ <pm> \d* ]?
}
rule pm {
[ '+' || '-' ]?
}
Run Code Online (Sandbox Code Playgroud)
将匹配一个数字2.68156e+154,而不关心存在的空格rule number.但是,如果我之后添加一个空格\d*,它将失败.(即<pm> \d '.'? \d* [ <pm> \d* ]?失败).
示例2:如果我试图在单词的中间找到文字,那么它们之间的间距很重要.即,在找到条目Double_t Delta_phi_R_1_9_pTproj_13_dat_cent_fx3001[52] = {
grammar TOP {
^ .*? <word-to-find> .* ?
}
rule word-to-find {
\w*?fx\w*
}
Run Code Online (Sandbox Code Playgroud)
会找到这个词.然而,如果规则的定义word-to-find更改为:
fx
或 \w* fx\w*
或 \w*fx \w*那么就不会进行匹配.
此外,然后定义'[52]'将匹配,而定义'fx[52]'将不匹配.
感谢您的任何见解.指向文档中正确点的指针将有很大帮助!谢谢,