在 Perl 6 中,<.before ... >
是什么意思?在正则表达式中?
好像和<?before ... >
是一样的意思:
my $str = "Hello";
$str ~~ /<alpha> <?before 'o'>/;
say $/;
$str ~~ /<alpha> <.before 'o'>/;
say $/;
输出:
「l」
alpha => 「l」
「l」
alpha => 「l」
我想澄清一下,因为我看到一些代码使用了 <.before ...>
我不确定这是什么意思。这可能是非法语法,也可能意味着否定前瞻 <!before ...>
或正面前瞻<?before ...>
或者是其他东西。我知道我可以制定像 <alpha>
这样的规则通过在它前面放一个点来非捕获 <.alpha>
,但它对我来说对于前瞻没有意义,因为它们总是非捕获的。无论如何,它应该写成<.?before ... >
或 <.!before ... >
区分正面和负面前瞻?
最佳答案
<.before ...>
与<?before ...>
相同,尽管前瞻性不太明显(这就是为什么我建议使用 <?before ...>
形式)。
基本上,<?anything>
转 anything
进入积极的展望,并且<.anything>
是非捕获子规则调用。自 before
已经是前瞻性的,两种形式都没有捕获,它们的行为相同。
关于raku - <.before ...> 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49046334/