我正在尝试更改一个小脚本,但我不确定它的一部分
基本上,我有一些用于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数组中的第一项,第二项,第三项
答案 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'