> 백엔드 개발 > PHP 튜토리얼 > 想要个正则表达式,匹配所有<img>标签,该如何处理

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

PHP中文网
풀어 주다: 2023-02-28 14:50:02
원래의
2594명이 탐색했습니다.

  想要个正则表达式,匹配所有 想要个正则表达式,匹配所有<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);
?>
로그인 후 복사
<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).*>
로그인 후 복사

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿