0


0

PHPに必要なpreg_replace式のヘルプ

一部のテキストから一部のBBCodeを削除しようとしています。 PHPのpreg_replace関数を使用して、[img]と[/ img]の間のすべてを削除したいと思います。次に例を示します。

Here is my image[img]http://www.abc.com/image1.jpg[/img] and more text

一致:[img]の後に任意の数の文字が続き、[/ img]が続く

結果:

Here is my image and more text

ありがとう。

3 Answer


2


まず、BBCodeタグに一致するパターンを見つけます。

\[img\][^\[]+\[/img\]

唯一の難しい部分は、クラス[[^ \]] `です。 `\ [`は任意の開き括弧を意味し、^はNOTを意味します。 したがって、このクラスは、 `[`以外のすべてに一致します。 クラスを `。`に置き換えて、U(あいさつなし)オプションを使用することもできます。

使用するパターンが決まりましたので、次のように置き換えてください…​ 空の文字列。 これで作業は完了です!

これは非常に基本的な正規表現です。それを理解し、再現できることが重要です


1


/\[img\].*?\[\/img\]/i

`[img]`と `[/ img]`の間のすべてを処理します(大文字と小文字を区別しません)


0


コンテンツをグループ化することを忘れないでください。 '/[img](.+)[\/img]/i'。条件を置き換えるときに、タグ 'image:$ 1 [image]'の間の値を参照できます。