0

我有这个示例字符串:hello77boss2america-9-22-fr99ee-9。应在字符串的所有单个数字前添加前导 0。结果应该是:hello77boss02america-09-22-fr99ee-09

我尝试了下面的代码:

str_replace("(0-9)","0",$num);
4

1 回答 1

4

您可以使用preg_replace查找单独的数字并替换它们,例如...

<?php
echo preg_replace(
    '~(?<!\d)(\d)(?!\d)~',
    '0$1',
    'hello77boss2america-9-22-fr99ee-9'
); //hello77boss02america-09-22-fr99ee-09

这是一个更具描述性的版本。

<?php
$callback = function($digit) {

    $digit = $digit[0];

    if (1 == strlen($digit)) {
        $digit = "0$digit";
    }

    return $digit;
};

echo preg_replace_callback('~\d+~', $callback, 'hello77boss2america-9-22-fr99ee-9');
// hello77boss02america-09-22-fr99ee-09
于 2013-08-10T19:59:29.783 回答