我想用正则表达式替换来做零填充整数。我有以下字符串:
my $string = '3-7+9-15';
并希望输出:
03-07+09-15
我知道我可以使用sprintf,但我必须首先检索每个整数做sprintf然后将整数重新连接成一个字符串:(
我想用正则表达式替换一次通过。有可能吗?
答案 0 :(得分:3)
my $string = '3-7+9-15';
$string =~ s/\b(\d)\b/0$1/g;
say $string;
<强>输出:强>
03-07+09-15
答案 1 :(得分:3)
我会选择将sprintf
与正则表达式替换结合使用
use strict;
use warnings 'all';
use feature 'say';
my $s = '3-7+9-15';
$s =~ s{(\d+)}{ sprintf '%02d', $1 }ge;
say $s;
03-07+09-15