我想了解这些内容:
<div class="scene_box">
WHATEVER IS IN HERE
<div class="clear"></div>
但我无法获得中间的内容
这是我的代码:
preg_match("/<div class=\"scene_box\">(.*?)<div class=\"clear\"><\/div>
<\/div> /", $res, $match);
如果有人可以提供帮助,将非常感激
是scene_box的多个,这就是我使用preg_match
的原因答案 0 :(得分:1)
不要使用正则表达式解析HTML。使用类似QueryPath
的内容答案 1 :(得分:1)
你已经对另一个答案提出了更好的建议(但应该是评论)。要通过一个有用的示例来扩展它,这就是您可以非常轻松地利用phpQuery或QueryPath来实现您的情况:
print qp($html)->find("div.scene_box")->text();
但是为了回答你的实际正则表达式问题,你忘记了正则表达式末尾的/s
修饰符。这就是(.*?)
与标记/标记之间的内容不匹配的原因。 .
点通常会忽略换行符/ CRLF。