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

这将删除文本中的所有bb标签。我也希望删除这些人的签名。这必须在替换标签之前完成,我想用一个正则表达式来完成。preg_replace删除文本和标签

这应该是彻底删除:

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

被玩弄了一会儿,并毫无进展。

+0

分享您的代码以分享您的问题。明确在哪一点,你的正则表达式,你打路障。显然,答案显然是:首先学习正则表达式,不符合我想说的答案。 – hakre 2012-07-21 09:48:00

回答

2

只要写你看看什么是一个模式:

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

逃离那些有特殊含义的字符(如左方括号[)。

这应该做到这一点。

+0

谢谢。任何想法,我可以如何做到这一点和我的帖子中的一部分? – domino 2012-07-21 09:56:01

+0

我会说你不能。正如你在你的问题中已经写过的,你需要先做一步。就这样做吧,做多个步骤没有任何问题(事实上,多个步骤通常是问题的解决方案,所以一个人做的一切都很糟糕) – hakre 2012-07-21 10:34:56

0

例如这样的事情应该工作:

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