我想在以下之间获取所有 html:
<table cellpadding="0" cellspacing="0" border="0" class="list" width="100%">
.
.
.
.
</tbody>
preg_match_all('XXXXXXXXXX', $this->markup, $links);
我想在以下之间获取所有 html:
<table cellpadding="0" cellspacing="0" border="0" class="list" width="100%">
.
.
.
.
</tbody>
preg_match_all('XXXXXXXXXX', $this->markup, $links);
一般来说,我也建议使用 DomDocument 而不是正则表达式。但是在这种情况下,DomDocument 需要一些额外的麻烦,因为 OP 需要 HTML 代码,而不仅仅是 nodeValue(s)。(无论如何,对于基于 DomDocument 的方法,您可以使用一些像这样的“解决方法” (获取表格的内容,包括 HTML。))
话虽如此,这是您要求的正则表达式:
$html = '<table cellpadding="0" cellspacing="0" border="0" class="list" width="100%">' .
'<tr><td>Lorem</td><td>Ipsum</td></tr>' .
'</table>';
preg_match_all('/<table.*?>(.*?)<\/table>/si', $html, $matches);
var_dump($matches[1][0]); // string(37) "<tr><td>Lorem</td><td>Ipsum</td></tr>"
您应该使用DomDocument之类的东西,而不是使用正则表达式来解析它。
使用phpQuery进行此操作。PhpQuery 有类似 jQuery 的语法,只是为了理解