PHP:将字符串中的前导零到单个数字连接起来

时间:2013-08-10 19:53:11

标签: php regex

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

我尝试了以下代码:

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

1 个答案:

答案 0 :(得分: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