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

2022-08-30 11:16:24

我正在PHP中使用正则表达式。我有以下字符串:

<img 
src="/files/admin/hotel_website.gif" alt="Go To The Hotel's Web 
Site" align="absmiddle" border="0" class="hotel_icon" />

此字符串包含回车符和换行符。

我希望我的正则表达式用IMG替换html img标签,但这不适用于上述文本。

我发现它包含这些字符,方法是遍历字符串中的每个字符并打印出可以在此处找到的十六进制表示形式(http://pastebin.com/ViNdBsRV)。

这是我的正则表达式:

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

感谢您的帮助。


答案 1

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


答案 2

这:

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

就个人而言,当我制作正则表达式时,我总是尝试使用最短/最简单的表达式。在这里,您想要替换以“”开头并以“”结尾的整个标签,“”是一个不贪婪(懒惰)的捕获。对于修改符,“”表示大小写,“”表示可能成为新行。<img/>.+?is.

更多关于贪婪与懒惰 : http://www.regular-expressions.info/repeat.html
更多关于修饰符: http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php


推荐