如何在PHP中使用正则表达式匹配空白,回车和换行


How to match whitespace, carriage return and line feed using regular expression in PHP?

我正在使用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));

感谢您的帮助

['n'r]+将匹配新行。对于空白,添加['n'r's]+

This:

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

这对我来说很有效,它匹配多个空格和多行,也可以匹配任何其他字符或符号。

['S+'n'r's]+

希望对大家有所帮助。

匹配如下示例:

stpd  : asdfasdf
this is also matching ***