2

我想在这样的文本中插入 () 并将它们放在一个数组中,但里面可能有一些嵌套的括号。

文本:

(This (is) a example) (on what i want)

应该这样处理:

$array["this (is) a example"] = "on what i want";

我怎样才能做到这一点?

4

1 回答 1

0
$s = '(This (is) a example) (on what i want)';

unset($matches);
preg_match_all('/^\\((.*)\\)[ \\t]+\\((.*)\\)$/', $s, $matches);
$array[$matches[1][0]] = $matches[2][0];

var_dump($array);

这是可能的,因为它.*贪婪的,它会尝试匹配括号之间最长的字符串,同时仍然确保整个模式匹配。

于 2012-10-21T01:00:01.183 回答