次の間のすべての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 が nodeValue だけでなく HTML コードを必要とするためです。(とにかく、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>"
この操作にはphpQueryを使用します。PhpQuery には jQuery のような構文があり、単純に理解するためのものです
これを正規表現で解析する代わりに、DomDocumentのようなものを使用する必要があります。