簡體   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