我需要处理我的preg_replace
模式:
我想替换括号[]
之间的文本,但也要替换括号内的文本,而不仅仅是第一个[.[.].....]
和相同的模式,而只是替换这些括号内的数字。
任何想法?
答案 0 :(得分:4)
试试这个正则表达式:
$re = '#\[(?:.*?(?0))*.*?\]#'
这将匹配一对[...]对,它本身可能包含一个或多个[...]对,它们之间有任何字符。这是通过在模式中使用递归来完成的((?0)
再次调用模式)。
preg_match($re, '[.[.]....]', $m);
print_r($m);
// Output:
// Array
// (
// [0] => [.[.]....]
// )