在两个括号之间获取文本,包括嵌套括号

时间:2012-10-21 00:49:18

标签: php

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

文本:

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

它应该像这样处理:

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

我该怎么做?

1 个答案:

答案 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);

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