0
preg_replace('|[[\/\!]*?[^\[\]]*?]|si', '', $text);

これにより、テキストからすべての bb タグが削除されます。私はその人の署名も削除しようとしています。これは、タグを置き換える前に行う必要があり、1 つの正規表現で行いたいと考えています。

これは完全に削除する必要があります。

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

しばらくそれで遊んでいましたが、どこにも行きませんでした。

4

2 に答える 2

2

探しているものをパターンとして書くだけです。

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

特別な意味を持つ文字(たとえば、角かっこ[)をエスケープします。

それはそれをする必要があります。

于 2012-07-21T09:49:59.387 に答える
0

たとえば、次のようなものが機能するはずです。

/((\s?\w)+|[[\/\!]*?[^\[\]]*?])/
于 2012-07-21T09:47:51.600 に答える