我有以下字符串:
Apples Bananas Oranges Me 1 2 3 Brother 4 4 5
我需要一个正则表达式,以获得我们每个人“我和我的兄弟”所拥有的苹果,香蕉和橘子的数量。
请帮助我,我在这里完全无能为力。
答案 0 :(得分: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
)
)
答案 1 :(得分:0)
粗略
$regexp = "/([\w]+) +([\d]+) +([\d]+) +([\d]+)/";
$matches = array();
preg_match($regexp, $yourDataSet, $matches);
根据您是使用1个长字符串还是带有换行符的字符串,您可以在正则表达式中的最后一个/之前添加\ n并使其更精确。