使用php从字符串开始和结束获取所有匹配项

时间:2013-01-13 21:06:13

标签: php regex preg-match preg-match-all

如何使用PHP从此字符串中提取[startstring][endstring]之间的所有内容:

[startstring]hello = guys[endstring] hello guys [startstring]jerk = you[endstring] welcome to the universe

我想查找[startstring][endstring]的所有匹配项,并回显里面的文字。有点像分界符。而且我希望所有的比赛都被空间分开。

我将如何完成此任务?这需要regex吗?你能提供样品吗?

非常感谢! :)

2 个答案:

答案 0 :(得分:10)

preg_match_all('/\[startstring\](.*?)\[endstring\]/s', $input, $matches);
echo implode(' ', $matches);

preg_match_all('/\[startstring\](.*?)\=(.*?)\[endstring\]/s', $input, $matches);
for ($i = 0; $i < count($matches[1]); $i++) {
    $key = $matches[1][$i];
    $value = $matches[2][$i];
    $$key = $value;
}

答案 1 :(得分:4)

尝试preg_match_all

preg_match_all('/\[startstring\](.*?)\[endstring\]/', $input, $matches);
var_dump($matches);