我有以下字符串:
苹果 香蕉 橙子 我 1 2 3 兄弟 4 4 5
我需要一个正则表达式来获取我们每个人“我和我的兄弟”拥有的苹果、香蕉和橙子的数量。
请帮助我,我在这里完全一无所知。
你可能想要一些这样的代码:
$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
)
)
大致
$regexp = "/([\w]+) +([\d]+) +([\d]+) +([\d]+)/";
$matches = array();
preg_match($regexp, $yourDataSet, $matches);
根据您使用的是 1 个长字符串还是带有换行符的字符串,您可以在正则表达式的最后一个 / 之前添加 \n 并使其更精确。