用perl regex替换的零填充整数

sku*_*ito 3 regex perl substitution

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

my $string = '3-7+9-15';
Run Code Online (Sandbox Code Playgroud)

并希望输出:

03-07+09-15
Run Code Online (Sandbox Code Playgroud)

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

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

Bor*_*din 5

我会选择sprintf与正则表达式替换结合使用

use strict;
use warnings 'all';
use feature 'say';

my $s = '3-7+9-15';
$s =~  s{(\d+)}{ sprintf '%02d', $1 }ge;
say $s;
Run Code Online (Sandbox Code Playgroud)

输出

03-07+09-15
Run Code Online (Sandbox Code Playgroud)