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