Как сопоставить пробел, возврат каретки и перевод строки с помощью регулярного выражения в PHP?




html regex (2)

Это сработало для меня, оно соответствует нескольким пробелам и многострочкам, а также любому другому символу или символу.

[\S+\n\r\s]+

Надеюсь, это кому-нибудь поможет.

Это соответствует, например:

stpd  : asdfasdf
this is also matching ***

Я работаю с регулярным выражением в 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, но это не работает с приведенным выше текстом.

Я обнаружил, что он содержит эти символы, просматривая каждый символ в строке и распечатывая шестнадцатеричное представление, которое можно найти здесь ( http://pastebin.com/ViNdBsRV ).

Вот мое регулярное выражение:

strip_tags(preg_replace('/^\s*<img\s*.*\/?>\s*$/i', '[IMG]', $test));

Ценю помощь.


Это:

preg_replace("#<img.+?/>#is", '[IMG]', $test)

Лично, когда я делаю регулярные выражения, я всегда стараюсь идти кратчайшим / самым простым. Здесь вы хотите заменить весь тег, который начинается с ' <img ' и заканчивается ' /> ', ' .+? 'не жадный (ленивый) улов. И для модификаторов ' i ' для случая и ' s ' для . возможность быть новыми линиями.

Больше о жадности против лени: http://www.regular-expressions.info/repeat.html
Подробнее о модификаторах: http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php





carriage-return