我有一个这样的字符串:
# as a generator
all_combinations(range(25)) # timing: 100000 loops, best of 3: 2.53 µs per loop
# as a list
list(all_combinations(range(25))) # timing: 1 loops, best of 3: 9.37 s per loop
我想转换成
1,2,4 0:5 1:10 3:14
只有“:”之前的数字必须加1。
我试过了:
1,2,4 1:5 2:10 4:14
奇怪的回归
perl -w -e '$s="1,2,4 0:5 1:10 3:14";
$s =~ s/([0-9]*):/print(($1+1).":")/ge;
print("$s\n");'
有没有简单的方法来实现我的目标?
答案 0 :(得分:11)
你足够接近,但它必须匹配至少一个数字,然后是:
,并且替换部分必须返回所需的结果,而不是打印它。
my $s = "1,2,4 0:5 1:10 3:14";
$s =~ s/([0-9]+) (?=:)/ $1+1 /xge;
print $s, "\n";