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 配列の最初のアイテム、2 番目のアイテム、3 番目のアイテムを意味する方法がわかりません

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 に答える