(第一次发帖,来自 Google 的长期访客)
我正在尝试提取一些方括号的内容,但是我遇到了一些麻烦。我已经让它适用于圆括号,如下所示,但我看不出应该如何修改它以适用于方括号。我本以为在这个例子中用圆形替换方形,反之亦然应该可行,但显然不行。
它需要忽略括号内的括号。所以它不会返回 (11) 而是会返回 (10(11)12)。
$preg = '#\(((?>[^()]+)|(?R))*\)#x';
$str = '123(456)(789)(10(11)12)';
if(preg_match_all($preg, $str, $matches)) {
$matches = $matches[0];
} else {
$matches = array();
}
echo '<pre>'.print_r($matches,true).'</pre>';
This returns:
Array (
[0] => (456)
[1] => (789)
[2] => (10(11)12)
)
这是完美的。但是,我怎样才能让这个工作适用于带有方括号的字符串,例如:
$str = '123[456][789][10[11]12]';
$preg = '#\[((?>[^\[\]]+)|(?R))*\]#x';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)