0

次の文字列があります。

         リンゴ バナナ オレンジ
私 1 2 3  
ブラザー 4 4 5

「私と弟」のそれぞれが持っているリンゴ、バナナ、オレンジの数を取得するには、正規表現が必要です。

私を助けてください、私はここではまったく無知です。

4

2 に答える 2

2

おそらく次のようなコードが必要です。

$string = file('input.txt');
$headers = array();
$results = array();
foreach($string as $i => $line) {
    preg_match_all('@(\w+)@', $line, $matches);
    if (!$i) {
        $headers = $matches[0];
    } else {
        $name = array_shift($matches[0]);
        $results[$name] = array_combine($headers, $matches[0]);
    }   
}   
print_r($results);

結果は次のようになります。

Array
(   
    [Me] => Array
        (   
            [Apples] => 1
            [Bananas] => 2
            [Oranges] => 3
        )   

    [Brother] => Array
        (   
            [Apples] => 4
            [Bananas] => 4
            [Oranges] => 5
        )   

)   
于 2012-05-15T22:15:51.830 に答える
0

だいたい

$regexp = "/([\w]+) +([\d]+) +([\d]+) +([\d]+)/";
$matches = array();
preg_match($regexp, $yourDataSet, $matches);

1つの長い文字列を使用しているか、改行を含む文字列を使用しているかに応じて、正規表現の最後の/の前に\ nを追加して、より正確にすることができます。

于 2012-05-15T21:53:16.400 に答える