2012-07-21 133 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)+|[[\/\!]*?[^\[\]]*?])/