需要preg_replace或最佳选项才能进行此转换

时间:2014-09-21 23:57:22

标签: php regex

我确定这很简单,我尝试格式化几个组合我的示例S1,Ep1 = 10001或S1,Ep2 = 10002 preg_组合,所有都失败了,而不是我的强项'

我需要的格式如下:

$link = array('Episodes from link');

$str = preg_replace('/^s/+', '0', $link);
echo   $str(array(  
  '10001',
  '10002',
  '10003',
));

依旧......

由于空格,逗号和字符而继续使用多个零,非常感谢任何帮助......

由于

1 个答案:

答案 0 :(得分:0)

你的问题非常清楚,我可能会离开,但这是我对你问题的尝试。

$link = array('S1, Ep1', 'S1, Ep2', 'S1, Ep3', 'S1, Ep10');

$results = preg_replace_callback('~^S(\d+)\D+(\d+)$~m', 
         function($m) {
            $which = strlen($m[2]) > 1 ? '00' : '000';
            return $m[1] . $which . $m[2];
         }, array_values($link));

print_r($results);

输出

Array
(
    [0] => 10001
    [1] => 10002
    [2] => 10003
    [3] => 10010
)