我需要查找和替换它包含标签img的所有div标签,我尝试了一些正则表达式,而不更迭:( 这是一个正则表达式,我试过的例子: /(<div class="indicator"[^<]*>.*<img[^>]*>[^<]*</div>)/g
请帮助正则表达式:找到包含标签img的所有div标签
谢谢
我需要查找和替换它包含标签img的所有div标签,我尝试了一些正则表达式,而不更迭:( 这是一个正则表达式,我试过的例子: /(<div class="indicator"[^<]*>.*<img[^>]*>[^<]*</div>)/g
请帮助正则表达式:找到包含标签img的所有div标签
谢谢
如果你已经div嵌套的div图像像dystroy说,那么就不能正确地使用正则表达式,因为它实际上不是一个正规的语言做的潜力。也许你应该使用DOM这是相关的: How do you parse and process HTML/XML in PHP?
最好不要尝试解析使用正则表达式的HTML,它可以很容易出错。使用DOM你可以这样做:
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html); // loads your html
$nodeList = $doc->getElementsByTagName('div');
for($i=0; $i < $nodeList->length; $i++) {
$node = $nodeList->item($i);
$children = $node->childNodes;
foreach ($children as $child) {
if ($child->nodeName == 'img') {
echo "DIV tag contains IMG tag\n";
break;
}
}
}
并且当div包含一个包含图像的div时你想要做什么?你确定你不想解析而不是使用正则表达式吗? –
http://php.net/manual/en/book.dom.php – Sammitch
不要用正则表达式解析HTML。他们不适合做这件事。 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answers – shark555