繁体   English   中英

正则表达式:查找包含标签img的所有div标签

[英]Regular expressions : find all div tags which contain tag img

我需要查找并替换所有包含标签img的div标签,我尝试了一些不成功的正则表达式:(这是我尝试过的正则表达式的示例: /(<div class="indicator"[^<]*>.*<img[^>]*>[^<]*</div>)/g请提供帮助

谢谢

如果您有可能像dystroy所说的那样嵌套div div图像,那么用正则表达式就不能正确完成,因为它实际上不是常规语言。 可能您应该使用DOM。 这是相关的: 如何在PHP中解析和处理HTML / XML?

最好不要尝试使用RegEx解析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;
       }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM