2012-07-21 3 views
0
preg_replace('|[[\/\!]*?[^\[\]]*?]|si', '', $text); 

Ceci supprime toutes les balises bb du texte. Je cherche également à supprimer la signature des personnes. Cela doit être fait avant le remplacement de l'étiquette et je voudrais le faire avec une regex.preg_replace suppression d'un texte et de balises

Ce devrait être totalement:

[b][color=red]This is my signature[/color][/b] 

joue avec elle pendant un certain temps et a obtenu nulle part.

+0

Partagez votre code pour partager votre problème. Précisez à quel point, spécifiquement avec votre regex, vous atteignez le barrage routier. D'un autre côté, la réponse est évidemment: Apprenez d'abord les expressions régulières qui ne sont pas considérées comme une réponse. – hakre

Répondre

2

écrire juste ce que vous recherchez comme motif:

$pattern = '(\[b]\[color=red](?:\w|\s)*\[/color]\[/b])'; 

échapper à ces personnages qui ont une signification particulière (par exemple, l'ouverture support carré [).

Cela devrait le faire.

+0

Merci. Des idées comment je pourrais faire ceci et le rôle dans mon poste en un? – domino

+0

Je dirais que tu ne peux pas. Comme vous l'avez déjà écrit dans votre question, vous devez faire le pas avant l'autre. Faites-le de cette façon, il n'y a rien de mal à faire plusieurs étapes (en fait, plusieurs étapes sont souvent la solution aux problèmes, donc tout en un est mauvais) – hakre

0

par exemple quelque chose comme cela devrait fonctionner:

/((\s?\w)+|[[\/\!]*?[^\[\]]*?])/ 
Questions connexes