[英]What is the meaning of <.before …>?
在 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 ...>
不那么明显(这就是我推荐使用<?before ...>
形式的原因)。
基本上, <?anything>
将anything
转化为积极的<.anything>
,而<.anything>
是一个非捕获子规则调用。 由于before
已经是前瞻,并且两种形式都没有捕获,因此它们的行为相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.