2012-10-24 38 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); 

类似的东西应该这样做。