2010-06-27 8 views
1

Disons que j'essaie de remplacer chaque caractère "A" par un "B", à l'intérieur de deux balises [lol].PHP: remplacer un caractère spécifique dans une plage avec preg_replace

Par exemple:

"[lol] Il est Greata vraiment isA [/ lol]"

deviendra

"[lol] Il est greatB vraiment isB [/ lol]"

J'essayais de travailler quelque chose moi-même mais c'était en vain. Le plus proche je suis arrivé est ceci:

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

Bien sûr, il ne fonctionne pas de cette façon ...

Je vous remercie de toute aide!

merci!

+0

Je ne pense pas que cela puisse être fait avec/dos références, à moins que vous aurez toujours un certain nombre de caractères « A » à remplacer. –

Répondre

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

donne

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