+ -
当前位置:首页 → 问答吧 → Perl 的正则替换中 /g 何解?

Perl 的正则替换中 /g 何解?

时间:2011-07-12

来源:互联网

$var1 = $var2 = "1234567890123" ;

$var1 =~ s/^(-?\d+)(\d{3})/$1,$2/ ;  
$var2 =~ s/^(-?\d+)(\d{3})/$1,$2/g ; # 为什么这行和上一行一样, 我认为应该将 $var2 替换成每三个数字一个空格的形式

say "$var1";
say "$var2";

输出是:
1234567890,123
1234567890,123

作者: walfud   发布时间: 2011-07-12

Perl code
$var1 =~ s/\d{3}/$&,/g;


回答不了你的问题,因为不能理解你的想法。

作者: iambic   发布时间: 2011-07-12

g是把所有匹配的字符串都替换了,不加g只替换找到的第一个。

作者: I_NBFA   发布时间: 2011-07-12

Perl code
$str="abc12def345ghi678";
$str=~s/\d+/*/;
print("$str\n");
$str=~s/\d+/#/g;
print("$str\n");

abc*def345ghi678
abc*def#ghi#

作者: fibbery   发布时间: 2011-07-12