繁体   English   中英

<.before ...> 是什么意思?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM