我正在使用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));
感谢你的帮助。
发布于 2011-09-23 19:21:40
这一点:
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
发布于 2011-09-23 18:58:36
[\n\r]+
将匹配新行。对于空格,添加[\n\r\s]+
发布于 2014-08-06 23:10:31
这对我来说很有效,它可以匹配多个空格和多行,也可以匹配任何其他字符或符号。
[\S+\n\r\s]+
希望这对任何人都有帮助。
例如,它匹配:
stpd : asdfasdf
this is also matching ***
https://stackoverflow.com/questions/7527895
复制相似问题