PHP:用preg_replace替换范围内的特定字符

PHP:用preg_replace替换范围内的特定字符,php,regex,preg-replace,Php,Regex,Preg Replace,假设我试图用两个[lol]标记内的“B”替换每个“A”字符 例如: “[lol]我是格雷塔,真的是一个[/lol]” 将成为 “[lol]真是太棒了,是的[/lol]” 我想自己做点什么,但没有成功。 我得到的最接近的结果是: preg_replace("%(\[lol\])"."(.*?)([A]+?)(.*?)"."(\[/lol\])%s", "$1$2B$4$5", $haystack); 当然不是这样的 我将感谢任何帮助 谢谢 echo preg\u replace( echo pr

假设我试图用两个[lol]标记内的“B”替换每个“A”字符

例如:

“[lol]我是格雷塔,真的是一个[/lol]”

将成为

“[lol]真是太棒了,是的[/lol]”

我想自己做点什么,但没有成功。 我得到的最接近的结果是:

preg_replace("%(\[lol\])"."(.*?)([A]+?)(.*?)"."(\[/lol\])%s", "$1$2B$4$5", $haystack);
当然不是这样的

我将感谢任何帮助

谢谢

echo preg\u replace(
echo preg_replace(
    '/(?<=\[lol\]).*?(?=\[\\/lol\])/e',
    'str_replace("A", "B", "\\0")',
    'AAA sdf [lol]It\'s greatA really isA[/lol] AAAA ' .
        'sdfd [lol]It\'s greatA really isA[/lol] AA sf'
);
“/(?
echo preg\u replace(

“/(?我不认为这可以通过反向引用完成,除非您总是有一组“a”字符要替换。我不认为这可以通过反向引用完成,除非您总是有一组“a”字符要替换。 AAA sdf [lol]It\'s greatB really isB[/lol] AAAA sdfd [lol]It\'s greatB really isB[/lol] AA sf