php preg_replace模式

时间:2011-01-28 11:19:01

标签: php preg-replace pattern-matching

我需要处理我的preg_replace模式:

我想替换括号[]之间的文本,但也要替换括号内的文本,而不仅仅是第一个[.[.].....]和相同的模式,而只是替换这些括号内的数字。

任何想法?

1 个答案:

答案 0 :(得分:4)

试试这个正则表达式:

$re = '#\[(?:.*?(?0))*.*?\]#'

这将匹配一对[...]对,它本身可能包含一个或多个[...]对,它们之间有任何字符。这是通过在模式中使用递归来完成的((?0) 再次调用模式)。

preg_match($re, '[.[.]....]', $m);
print_r($m);

// Output:
// Array
// (
//    [0] => [.[.]....]
// )