2

シナリオは次のとおりです。次の文字列があります。

    Detroit 7 Chicago 13 (FINAL)

次のように配列を返したい:

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

トリックは、名前にスペースが含まれる都市のため、スペースで区切られないことです。また、スコアは1桁または2桁になる可能性があります.

4

2 に答える 2

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);

そのような何かがそれを行う必要があります。

于 2012-10-24T08:09:03.997 に答える
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);
于 2012-10-24T08:06:01.770 に答える