Php 正则表达式来提取div中的完整内容
如何在div中提取完整的html内容?我试过这个密码Php 正则表达式来提取div中的完整内容,php,html,regex,dom,Php,Html,Regex,Dom,如何在div中提取完整的html内容?我试过这个密码 $html= '<html> <body> <div id="test"> <div id="mydiv1">Hello</div> <div id="mydiv2">How are you</div>
$html= '<html>
<body>
<div id="test">
<div id="mydiv1">Hello</div>
<div id="mydiv2">How are you</div>
</div>
</body>
</html>';
$attr = "id";
$value = "test";
$tag_regex = '/<div[^>]*'.$attr.'="'.$value.'">(.*?)<\\/div>/si';
preg_match($tag_regex,$html,$matches);
echo $matches[0];
$html='1!'
你好
你好吗
';
$attr=“id”;
$value=“测试”;
$tag_regex='/]*'.$attr'='.$value'.'>(.*)/si';
preg_match($tag_regex,$html,$matches);
echo$匹配项[0];
通过运行这段代码,我得到了结果
<div id="test">
<div id="mydiv1">Hello</div>
你好
预期结果
<div id="test">
<div id="mydiv1">Hello</div>
<div id="mydiv2">How are you</div>
</div>
你好
你好吗
在我的代码中,正则表达式一直执行到第一次出现
。如何获取
中的完整代码 使用DOMDocument:
$dom = new DOMDocument;
$dom->loadHTML($html);
$div = $dom->getElementById('test');
$result = $dom->saveHTML($div);
正则表达式有什么方法可以做到这一点吗?@FrayneKonok:是的,但你需要处理:空格、属性顺序、属性引号(单引号、双引号、完全没有引号)、html注释、javascript字符串、注释和正则表达式、css字符串和注释,当然还有嵌套标记。你准备好写这个模式了吗?