在perl中的特定位置递增整数
Incrementing integers in particular positions in perl
我有这样一个字符串:
1,2,4 0:5 1:10 3:14
我想转换成
1,2,4 1:5 2:10 4:14
只有“:”之前的数字必须加 1。
我试过:
perl -w -e '$s="1,2,4 0:5 1:10 3:14";
$s =~ s/([0-9]*):/print((+1).":")/ge;
print("$s\n");'
奇怪的是returns
1:2:4:1,2,4 15 110 114
有什么简单的方法可以实现我的 objective 吗?
你已经足够接近了,但它必须至少匹配一位数字,然后是 :
,替换部分必须 return 想要的结果,而不是打印出来。
my $s = "1,2,4 0:5 1:10 3:14";
$s =~ s/([0-9]+) (?=:)/ +1 /xge;
print $s, "\n";
我有这样一个字符串:
1,2,4 0:5 1:10 3:14
我想转换成
1,2,4 1:5 2:10 4:14
只有“:”之前的数字必须加 1。
我试过:
perl -w -e '$s="1,2,4 0:5 1:10 3:14";
$s =~ s/([0-9]*):/print((+1).":")/ge;
print("$s\n");'
奇怪的是returns
1:2:4:1,2,4 15 110 114
有什么简单的方法可以实现我的 objective 吗?
你已经足够接近了,但它必须至少匹配一位数字,然后是 :
,替换部分必须 return 想要的结果,而不是打印出来。
my $s = "1,2,4 0:5 1:10 3:14";
$s =~ s/([0-9]+) (?=:)/ +1 /xge;
print $s, "\n";