PHPで正規表現を使用しています。私は次の文字列を持っています:
<img
src="/files/admin/hotel_website.gif" alt="Go To The Hotel's Web
Site" align="absmiddle" border="0" class="hotel_icon" />
この文字列には、復帰文字と改行文字が含まれます。
正規表現でhtml imgタグをIMGに置き換えたいのですが、上記のテキストでは機能しません。
文字列内の各文字をループし、ここにある16進表現を出力することで、これらの文字が含まれていることを発見しました( http://Pastebin.com/ViNdBsRV )。
これが私の正規表現です。
strip_tags(preg_replace('/^\s*<img\s*.*\/?>\s*$/i', '[IMG]', $test));
ヘルプに感謝します。
この:
preg_replace("#<img.+?/>#is", '[IMG]', $test)
個人的には、正規表現を作成するとき、私は常に最短/最も簡単にしようとします。ここでは、 '<img
'で始まり '/>
'で終わるタグ全体を置換します。'.+?
'は欲張りでない(怠lazな)キャッチです。また、ケースの修飾子 'i
'と.
の 's
'は、新しい行になる可能性があります。
欲張りと怠zyの詳細: http://www.regular-expressions.info/repeat.html
修飾子の詳細: http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
[\n\r]+
は新しい行に一致します。空白の場合は、[\n\r\s]+
を追加します
これは私にとってはうまくいきましたが、複数のスペースと複数行、他の文字や記号にも一致します。
[\S+\n\r\s]+
これが誰にも役立つことを願っています。
以下に一致します。
stpd : asdfasdf
this is also matching ***