删除 html 中不包含 src 属性的 img

Remove img in html that non contain src attribute

我需要删除 html 中不包含 preg_match 和 PHP

的 src 属性的所有 img 元素

类似于:

<html>
 <img src="someurl" alt="something"  />
 <img  alt="something"  />
<html />

<html>
 <img src="someurl" alt="something"  />
<html />

坦克

如果你的老板坚持使用正则表达式,而他(她)听不到智慧的声音,你可以试试下面的正则表达式:

(?si)\s*<img\b(?>(?!src=).)*?\/>\s*

参见demo on regex101

示例 PHP 代码:

$re = "/(?si)\s*<img\b(?>(?!src=).)*?\/>\s*/"; 
$str = "<html>\n <img src=\"someurl\" alt=\"something\"  />\n <img  alt=\"something\"  />\n <img  alt=\"somethingelse\"\n       att='val'  />\n<html />"; 
$result = preg_replace($re, "", $str);