我想在这样的文本之间插入()并将它们放在一个数组中,但内部可能有一些嵌套的括号。
文本:
(This (is) a example) (on what i want)
它应该像这样处理:
$array["this (is) a example"] = "on what i want";
我该怎么做?
答案 0 :(得分: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);
这是可能的,因为.*
贪婪并尝试匹配括号中最长的字符串,同时仍然确保整个模式匹配。