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 回答