2
我想递增字符串中所有数字的出现次数perl eg。如果我的字符串是$ str =“转到第34页并读第3行” 它应该改为$ str =“转到第35页并阅读第4行”。递增字符串中所有数字的出现次数perl
我尝试使用
$str =~ s/[\d]/$&+1/g
但它给输出字符串即 “进入页面数34 + 1和读3 + 1RD线”
我想递增字符串中所有数字的出现次数perl eg。如果我的字符串是$ str =“转到第34页并读第3行” 它应该改为$ str =“转到第35页并阅读第4行”。递增字符串中所有数字的出现次数perl
我尝试使用
$str =~ s/[\d]/$&+1/g
但它给输出字符串即 “进入页面数34 + 1和读3 + 1RD线”
如何:
$ echo "foo 1 bar 2" | perl -pE 's/(\d+)/$1+1/ge'
foo 2 bar 3
重点是e
正则表达式选项,将替换零件作为表达式处理。
感谢队友的工作! – 2012-08-09 07:42:58
@shahidali:如果你同意一个答案,你应该接受它... – pavel 2012-08-09 18:21:45
另外,一定要使用捕获组()和$ 1作为答案建议,而不是$&如问题中所述。 $&在大多数版本的Perl 5中都会导致严重的性能损失。 – sundar 2013-08-03 17:44:58