如果您想制作一个“神秘文本”,双方括号之间的每个字母都有一个星号,您可以将此模式与以下内容一起使用preg_replace():$pattern = '~(?: \G (?!\A) | \[\[ (?= [^]]* ]] ) ) \s* \K [^]\s]~x';
$result = preg_replace($pattern, '*', $str);演示对于每个单词一个星号,只需将+量词添加到最后一个字符类即可。否则,如果您只想用一个星号来表示所有内容,Sil 的答案是好的(最终带有 s 修饰符)。