0

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

基本上,我有一些用于 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 数组中的第一项、第二项、第三项

4

2 回答 2

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
于 2013-03-01T22:50:33.550 回答
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'
于 2013-03-01T22:50:54.020 回答