PHP preg_replace位数

时间:2012-07-16 06:46:15

标签: php regex pcre

我有这个:

preg_replace('/(\d{1}|\d{2})/gi', '$1', 'some number');

如果文本是一位数字,$ 1返回一位数字,如果是2位数,则返回2位数字....,但我需要返回的数字一直是2位数:

1 => 01 
2 => 02
...
10 => 10
...
99 => 99

我该怎么做?

4 个答案:

答案 0 :(得分:1)

使用str_pad()。它便宜很多。 http://php.net/str_pad

答案 1 :(得分:1)

为什么这么复杂? KISS并使用str_pad

echo str_pad($input, 2, "0", STR_PAD_LEFT);

答案 2 :(得分:1)

你的意思是这个吗?使用e修饰符,用preg_replace函数执行php代码,以及str_padsprintf满足你的要求。

preg_replace('/(\d{1}|\d{2})/ie', 'sprintf("%02d",$1)', 'some number');

答案 3 :(得分:0)

请使用str_pad()。 <{1}}修饰符从PHP 5.5.0开始已弃用,应该避免使用。