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.