Regex 使用正则表达式匹配未嵌套在定位标记中的图像标记

Regex 使用正则表达式匹配未嵌套在定位标记中的图像标记,regex,regex-negation,Regex,Regex Negation,如何使用正则表达式匹配未嵌套在锚定标记中的图像 以下是我想要的: 不匹配: 匹配: 匹配: 我不擅长正则表达式,但这是我到目前为止提出的,不起作用: [^]*>][^] 我不能使用lookarounds,因为PHP希望它是特定的。您遇到困难的主要原因是HTML不是一种常规语言,请参见: 考虑使用足够强大的查询表达式语言来处理(X)HTML,或者仅以编程方式使用DOM来获取所有图像标记,然后排除带有的图像标记。 '' . ''; $doc=新的DOMDocument(); $doc->loadHT

如何使用正则表达式匹配未嵌套在锚定标记中的图像

以下是我想要的:

不匹配:

匹配:

匹配:

我不擅长正则表达式,但这是我到目前为止提出的,不起作用:

[^]*>][^]


我不能使用lookarounds,因为PHP希望它是特定的。

您遇到困难的主要原因是HTML不是一种常规语言,请参见:

考虑使用足够强大的查询表达式语言来处理(X)HTML,或者仅以编程方式使用DOM来获取所有图像标记,然后排除带有
的图像标记。
'' .
'';
$doc=新的DOMDocument();
$doc->loadHTML($generated\u string);
$xpath=新的DOMXpath($doc);
$elements=$xpath->query(“//*[not(self::a)]/img”);
foreach($elements作为$element){
echo$doc->saveXML($element)。“\n”;
}
此代码将给出以下输出:

<img src="images/inside_div.jpg"/>
<img src="images/inside_nothing.jpg"/>


]*>(?![^ html内容来自生成的字符串而不是文件。如果是这样,请使用
$doc->loadHTML($generated\u string)
。更新了我的示例,以操作字符串而不是html文件
<img src="images/inside_div.jpg"/>
<img src="images/inside_nothing.jpg"/>