0

我有一个远程 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>#

这些似乎都不起作用。我需要将 and 标记之间的所有内容,即每一行分别放入一个数组中。请帮忙。

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

4

1 回答 1

1

不要使用正则表达式来解析 HTML 文件

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

Regex用于正则一致表达式而不是不规则表达式

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

相信我,解析html 比使用简单regex


如果你准备好冒险

这是正则表达式

/<tr.*?>(.*?)</tr>/

使用s(PCRE_DOTALL) 选项

于 2012-11-01T03:43:19.660 回答