2013-03-01 45 views
0

我試圖改變一個小的腳本,但我不知道有關的部分它的preg_match格式結果

基本上,我有一些數據,該數據用於的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

$比賽是給我回來預期3項,我只是不知道我怎麼會用$ 1 $ 2 $ 3指的是第一項,第二項目中,$匹配陣列

+2

您正在尋找'preg_replace'。 – mario 2013-03-01 22:50:43

+0

將它作爲一個數組可能會更好。這樣你就不需要分配單個變量,並且擔心有很多匹配。 – christopher 2013-03-01 22:50:58

回答

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' 
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