以下の $string と同様のパターンを持つ文字列があります (フォーラムの投稿から取得)。
$string = "[quote=\"abc123\":27zslwh3]I don't agree with most of the statements made here.[/quote:27zslwh3] I don't think that is very nice of you.";
$pattern = "/\[quote\=.\*\[\/quote.*\]/";
$replace = "";
$updated_text = preg_replace($pattern,$replace,$string);
echo $updated_text;
preg_replace を使用して、[引用符] の開始タグと終了タグの間のすべてのテキストを削除し、残りの文字列をエコーしようとしています。のみ (上記の $string から)。
正規表現に使用しているパターンは、開始 [引用] タグの先頭を探し、終了 [引用] タグとタグの最後の ] が見つかるまで検索することになっています。
ただし、上記は適切に機能していないようです。また、reg 式にあまり精通していないため、ここで立ち往生しています。どんな助けでも大歓迎です。
.
注: draw010とbsdnoobzによって提供された両方のコードを試しました (コードと説明に感謝します) が、それでも機能しませんでした。問題は、$string テキストを正しくキャプチャしなかったことです。次のように読む必要があります。
$string = '[quote="abc123":27zslwh3]I dont agree with most of the statements made here.
abc123[/quote:27zslwh3]
I dont think that is very nice of you.';
二重引用符には html 文字があり、改行文字または改行文字のように見えるものもあり、これがおそらく、以下に提出された正規表現が機能しない原因です。