首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

想要个正则表达式,匹配所有<img>标签,该如何处理

2012-04-25 
想要个正则表达式,匹配所有img标签想要一个正则表达式,匹配所有img标签,并且这个标签里SRC属性不能含

想要个正则表达式,匹配所有<img>标签
想要一个正则表达式,匹配所有<img>标签,并且这个标签里SRC属性不能含有logo这个单词,包含这个单词的不匹配。
谢谢。

[解决办法]

PHP code
<pre><?php$string="adsfasdfa<img src='http://avatar.profile.csdn.net/3/6/F/2_jimx102.jpg'>fasdfadsfadsf";preg_match_all('/<img(?!.*?logo).*>/',$string,$matches);print_r($matches);?></pre>
[解决办法]
<img(?!.*?logo).*>

<img - 开头数据
(?! - 负向预查后面的字符
.*?贪婪匹配logo前面所有数据
(?!.*?logo) - 意为匹配所有不包含logo
.*> 则是 匹配所有换行前的> - 此处不使用 .*? 进行贪婪主要是为了避免 alt="abc>" 这样中间出现> 字符的情况

不过上面会出现个特例情况

例如

<img src="abc.jpg" alt="logo图片"> alt提示包含logo
<img src="test.jpg" logo=1 > 自定义属性


如果考虑这些情况,正则可以再细化到src位置

<img(.*?)(src)=\"(?!.*?logo).*>
[解决办法]
探讨
<img(?!.*?logo).*>

<img - 开头数据
(?! - 负向预查后面的字符
.*?贪婪匹配logo前面所有数据
(?!.*?logo) - 意为匹配所有不包含logo
.*> 则是 匹配所有换行前的>      -  此处不使用 .*? 进行贪婪主要是为了避免 alt="abc>" 这样中间出现> 字符的情况

不过上面会出现个特例情况

例如

<img src="abc.jpg" alt="logo图片">  alt提示包含logo
<img src="test.jpg" logo=1 >  自定义属性


如果考虑这些情况,正则可以再细化到src位置

<img(.*?)(src)=\"(?!.*?logo).*>

热点排行