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

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

PHP中文网
Release: 2023-02-28 14:50:02
Original
2598 people have browsed it

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

<pre class="brush:php;toolbar:false">
<?php
$string="adsfasdfa<img src=&#39;http://avatar.profile.csdn.net/3/6/F/2_jimx102.jpg&#39;>fasdfadsfadsf";
preg_match_all(&#39;/<img(?!.*?logo).*>/&#39;,$string,$matches);
print_r($matches);
?>
Copy after login
<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).*>
Copy after login

-----解决方案------

<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).*>
Copy after login

以上就是 想要个正则表达式,匹配所有标签,该如何处理 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template