用于换行的php regex从html中的表中获取行

时间:2012-11-01 03:29:14

标签: php html regex

我有一个远程html文件,我正在从中提取一个表。现在,我正在尝试使用正则表达式来获取此表中的各个行。

以下是此表格的示例格式:

<tbody style="text-align: left;">
<tr class=" even" style="text-align: left;">
<td style="text-align: left;"><a href="http://www.sdfkhy.com/%7Epbdsfby">TEXT1 </a></td>
<td style="text-align: left;">TEXT2</td>
<td style="text-align: left;">TEXT3</td>
</tr>
<tr style="text-align: left;">
<td style="text-align: left;"><a href="http://www.JDKSF.COM/index.html">TEXT3</a><br /><span class="style3">TEXT4</span></td>
<td style="text-align: left;">TEXT5</td>
<td style="text-align: left;">TEXT6</td>
</tr>
</tbody>

我尝试了以下内容:

#<tr[^>]*>(\r\n.*)*</tr>#
#<tr[^>]*>(.*?)*</tr>#
#<tr[^>]*>(.*)*</tr>#

这些似乎都不起作用。我需要在两者之间得到一切 和标签,即每行分别成一个数组。 请帮忙。

编辑:我需要根据要求使用REGEX,所以请不要建议使用DOM PARSER。

1 个答案:

答案 0 :(得分:1)

不要使用Regex解析HTML文件

Html并不严格..(例如,有时html可以有结束标签,有时它没有它)

Regex用于常规一致表达不规则表达式

使用DOMDocument->loadHTML()解析HTML。

相信我这个简单的解析 html而不是使用regex


如果你准备承担风险

这是

的正则表达式
/<tr.*?>(.*?)</tr>/

使用s(PCRE_DOTALL)选项