正则表达式 – 在perl中增加特定位置的整数

前端之家收集整理的这篇文章主要介绍了正则表达式 – 在perl中增加特定位置的整数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个像这样的字符串:

1,2,4 0:5 1:10 3:14

我要转换成

1,4 1:5 2:10 4:14

只有“:”之前的数字必须加1.

我试过了:

perl -w -e '$s="1,4 0:5 1:10 3:14"; 
$s =~ s/([0-9]*):/print(($1+1).":")/ge; 
print("$s\n");'

奇怪的回归

1:2:4:1,4 15 110 114

有没有简单的方法来实现我的目标?

解决方法

你足够接近,但它必须匹配至少一个数字,然后是:,并且替换部分必须返回所需的结果,而不是打印它.

my $s = "1,4 0:5 1:10 3:14"; 
$s =~ s/([0-9]+) (?=:)/ $1+1 /xge; 
print $s,"\n";

猜你在找的正则表达式相关文章