在Perl 6中,<.before ... >
正则表达式的含义是什么?它似乎意味着<?before ... >
:
my $str = "Hello";
$str ~~ /<alpha> <?before 'o'>/;
say $/;
$str ~~ /<alpha> <.before 'o'>/;
say $/;
Run Code Online (Sandbox Code Playgroud)
输出:
?l?
alpha => ?l?
?l?
alpha => ?l?
Run Code Online (Sandbox Code Playgroud)
我想澄清一下,因为我看到了一些使用的代码,<.before ...>
我不确定它是什么意思.它可能是非法的语法,或者它可能意味着负面的前瞻<!before ...>
或积极的前瞻<?before ...>
或其他.我知道我可以<alpha>
通过在它前面放一个点来制定像非捕获这样的规则<.alpha>
,但是对于我来说,因为它们总是无法捕获而对前瞻没有意义.在任何情况下,它应该写<.?before ... >
或<.!before ... >
区分正面和负面的前瞻?
<.before ...>
是相同的<?before ...>
,虽然不太明显的前瞻(这就是我推荐使用<?before ...>
表格的原因).
基本上,<?anything>
变成anything
一个积极的前瞻,并且<.anything>
是一个非捕获子规则调用.由于before
已经是先行,并且两种形式都没有捕获,因此它们的行为相同.
归档时间: |
|
查看次数: |
150 次 |
最近记录: |