2010-06-27 71 views
1

可以說我想用兩個[lol]標籤內的「B」替換每個「A」字符。PHP:使用preg_replace替換範圍內的特定字符

例如:

「[笑]這是greatA真的ISA [/笑]」

將成爲

「[笑]這是greatB真的ISB [/笑]」

我正在嘗試自己的工作,但它是徒勞的。 我得到的最接近是這樣的:

preg_replace("%(\[lol\])"."(.*?)([A]+?)(.*?)"."(\[/lol\])%s", "$1$2B$4$5", $haystack); 

當然它不會以這種方式工作...

我會感激任何幫助!

謝謝!

+0

我不認爲這是可以做到W /反向引用,除非你會永遠擁有的「A」字一組號碼來代替。 – 2010-06-27 21:39:22

回答

1
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' 
); 

 
AAA sdf [lol]It\'s greatB really isB[/lol] AAAA sdfd [lol]It\'s greatB really isB[/lol] AA sf