preg_match格式化结果

时间:2013-03-01 22:46:48

标签: php

我正在尝试更改一个小脚本,但我不确定它的一部分

基本上,我有一些用于preg_match模式的数据,如下所示:

 'pattern' => '(13)(\\d{2})(\\d{2})',
  'format' => '($1) $2 $3'

这个模式对我有意义,我不确定我是如何用“格式”来格式化preg_match的输出

所以代码片段如下所示:

$number = 131166;

if(preg_match($pattern,$number,$match)){
//format the number based on the "format" here
}

我正在寻找的输出是(13)11 66

$ match给我回复3项预期,我只是不确定如何使用$ 1 $ 2 $ 3来表示$ match数组中的第一项,第二项,第三项

2 个答案:

答案 0 :(得分:2)

使用preg_replace代替preg_match

$result = preg_replace('/(13)(\\d{2})(\\d{2})/', '(\\1) \\2 \\3', $number);
// if $number is 131166 $result now is (13) 11 66

答案 1 :(得分:1)

您应该使用preg_replace代替preg_match

$pattern = '/(13)(\\d{2})(\\d{2})/';
$format = '($1) $2 $3';
$number = 131166;

$newNumber = preg_replace($pattern, $format, $number));

echo $newNumber; // '(13) 11 66'