用preg_replace_callback方法比较方便 $string = '(a.b)b.c(c.d.e)'; $newString = preg_replace_callback('/\(.*?\)/', function($subStr) { return str_replace('.', '', $subStr[0]); }, $string); echo $newString; 结果 (ab)b.c(cde)
用
preg_replace_callback
方法比较方便结果