Perl 中的 G 斷言


Perl 中的 \G 斷言允許你從上次匹配發生的位置繼續搜尋。例如,在以下程式碼中,我們使用了 \G,以便我們可以搜尋到正確的位置然後提取一些資訊,而無需建立更復雜、更簡單的正則表示式:

示例

 即時演示

#!/usr/bin/perl
$string = "The time is: 12:31:02 on 4/12/00";
$string =~ /:\s+/g;
($time) = ($string =~ /\G(\d+:\d+:\d+)/);
$string =~ /.+\s+/g;
($date) = ($string =~ m{\G(\d+/\d+/\d+)});
print "Time: $time, Date: $date\n";

當執行以上程式時,會產生以下結果:

Time: 12:31:02, Date: 4/12/00

\G 斷言實際上只是 pos 函式的元符號等價物,因此在正則表示式呼叫之間,你可以繼續使用 pos,甚至可以透過使用 pos 作為 lvalue 子例程來修改 pos(因此改變了 \G)的值。

更新於: 2019 年 11 月 29 日

275 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.