2012-10-24 74 views
2

所以這裏的情景,我有以下字符串:拆分PHP中的字符串分隔符

Detroit 7 Chicago 13 (FINAL) 

我希望它如下返回數組:

array() { 
    ["T1_Name"]=>"Detroit" 
    ["T1_Score"]=>"7" 
    ["T2_Name"]=>"Chicago" 
    ["T2_Score"]=>"13" 
    ["Quarter"]=>"FINAL" 
    } 

關鍵是它可以由於名稱中有空格的城市不會被空格分隔,分數也可能是一位或兩位數字。

+1

你的努力是什麼? – Nemoden

+1

格式總是字符串 - int - string - int - string? – Sherlock

+1

你可以使用這個[regex](http://rubular.com/r/wgp88nwljn)和preg_match – Eun

回答

0

PHP preg_match

像這樣的事情吧?

preg_match('/([a-zA-Z\s]+?)[\s]+([\d]+)([a-zA-Z\s]+?)[\s]+([\d]+)[\s]+\(([\w]+)\)/', "Detroit 7 Chicago 13 (FINAL)", $matches); 
print_r($matches); 
1
$subject = 'Detroit 7 Chicago 13 (FINAL)'; 
$matches = array(); 
if (preg_match('~^(.+) ([0-9]{1,2}) (.+) ([0-9]{1,2}) \((.+)\)$~i', $subject, $matches)) { 
    var_dump($matches); 
    $result = array(
     'T1_Name' => $matches[1], 
     'T1_Score' => $matches[2], 
     'T2_Name' => $matches[3], 
     'T2_Score' => $matches[4], 
     'Quarter' => $matches[5], 
    ); 
} 
var_dump($result); 

類似的東西應該這樣做。