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