perl正则表达式替换的零填充整数

时间:2017-09-01 13:39:00

标签: regex perl substitution

我想用正则表达式替换来做零填充整数。我有以下字符串:

my $string = '3-7+9-15';

并希望输出:

03-07+09-15

我知道我可以使用sprintf,但我必须首先检索每个整数做sprintf然后将整数重新连接成一个字符串:(

我想用正则表达式替换一次通过。有可能吗?

2 个答案:

答案 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