【发布时间】:2015-06-06 01:45:17
【问题描述】:
我在 Perl 中使用正则表达式。我遇到的一件事:
my $n = " 49 here";
$n =~ s/\G /0/g;
print $n;
这给出了:
00049 here
我知道s 修饰符(单行)。我也了解 g 修饰符(全局,跟踪最后一个匹配位置)。我知道正则表达式用零替换了一些东西,但我不明白\G 和它后面的空格是做什么的(没有\G 后面的空格,结果是:0 49 here)。
【问题讨论】:
-
\G被称为 G-Anchor 构造。这意味着它必须匹配上一次成功匹配的结束位置。 -
“我知道
s修饰符(单行)。”我认为您将其与替换运算符混淆了。s修饰符:/foo/s替换运算符:s/foo/bar/ -
是的,感谢您的澄清!