有三种字符:
标题-01,
标题-字符-02,
标题03-字符,这三种,
我要实现在每个0前面加一个0,
结果是:
标题-001,
标题-字符-002,
标题003-字符
求一正则表达式实现,或者更快捷的方法

解决方案 »

  1.   

    如果是前置的数字0增加1位
    echo preg_replace("/(?<!\d)0\d+/", "0\\0", $string);
      

  2.   


    $arr = array('标题-01', '标题-字符-02',  '标题03-字符');foreach($arr as $s) {
        echo preg_replace('(\d+)', '0$0', $s) . '<br>';
    }
    /**
    输出结果:标题-001
    标题-字符-002
    标题003-字符
    */
      

  3.   

    <?php
    $arr = array('标题-01', '标题-字符-02', '标题03-字符');
    foreach ($arr as $val) {
            echo preg_replace('/(?<!\d)(0\d+)/', '0\1', $val) . PHP_EOL;
    }
    ?>
      

  4.   

    试试这个<?php
    $str = <<<string
    标题-01,
    标题-字符-02,
    标题03-字符
    string;echo preg_replace("/(\d{2})/", "0\\0", $str);
    ?>