【发布时间】:2014-04-14 16:12:14
【问题描述】:
我正在使用正则表达式来匹配页面中的特定 div,并将它们替换为自定义格式的。我不能使用 domdocument,因为我们处理的页面经常格式错误,并且在通过 domdocument 运行之后,页面被重新格式化并且显示不一样。
我目前正在使用以下完美的作品:
preg_match('#(\<div id=[\'|"]'.$key.'[\'|"](.*?)\>)(.*?)\<\/div\>#s', $contents, $response);
要匹配div标签如:
<div id="test"></div>
<div id="test" style="width: 300px; height: 200px;"></div>
etc...
我遇到的问题是id在样式或类之后的标签,例如:
<div class="test" id="test"></div>
如果我运行以下命令,正则表达式似乎变得贪婪并匹配 div 标签之前的大量 html,所以我不知道如何解决这个问题:
preg_match('#(\<div(.*?)id=[\'|"]'.$key.'[\'|"](.*?)\>)(.*?)\<\/div\>#s', $contents, $response);
有人有什么想法吗?
【问题讨论】:
-
看看这个,可能对你有点帮助:stackoverflow.com/questions/1732348/…
标签: php regex html-parsing