大括弧で囲んだテキストのすべてのインスタンスを別のものに置き換える必要があります。各角括弧のブロックは別々に扱われます。正規表現マッチングの構文
[quote author=joe link=topic=765.msg4476#msg4476 date=1330380346] This is the quoted text [/quote] This is the new post
:例えば、で始まる
** This is the quoted text ** This is the new post
私は、次を使用してみました:
preg_replace('/\[.*\]/', '**', $msgtext);
私は何を得ることである:
** This is the new post
大文字の括弧で区切られた複数のブロックがあっても、文字列全体の最初の[['文字]から最後の'] '文字までは一致しているようです。正規表現を変更して角括弧の中の各ブロックを個別に置き換えるにはどうすればよいですか?明らかに私の。*正規表現では、最後のものまで右括弧を含むすべてのものがマッチしていますが、最初の右括弧で停止してから、その論理を文字列全体にわたって繰り返す必要があります。デフォルトでは
ありがとうございました、上記のすべてが魅力的でした。私はバージョン以外のキャラクターを使用しましたが、貪欲でない人も同様に働き、同じ結果を得ました。解決済み。 –
@BenCahanあなたの質問に答えたと思われる場合は、投票の下にあるチェックマークをクリックして回答を受け入れる必要があります。 – cmbuckley