我需要查找和替換它包含標籤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