php正则表达式,用于在html中从表中获取行

php正则表达式,用于在html中从表中获取行,php,html,regex,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 </

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

文本2
文本3

TEXT4 文本5 文本6
我尝试了以下方法:

#<tr[^>]*>(\r\n.*)*</tr>#
#<tr[^>]*>(.*?)*</tr>#
#<tr[^>]*>(.*)*</tr>#
#]*>(\r\n.*)*#
#]*>(.*?)*#
#]*>(.*)*#
这些似乎都不起作用。我需要把一切都安排好 和标记,即每行分别放入一个数组中。 请帮忙

编辑:我需要按照要求使用正则表达式,因此请不要建议使用DOM解析器。

不要使用正则表达式解析HTML文件 Html不是严格的..(例如,有时Html可以有结束标记,有时它没有结束标记)

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

用于解析HTML

相信我,解析html比使用
regex


如果你准备好冒险的话

这是它的正则表达式

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

使用
s
(PCRE\u DOTALL)选项

您不应该尝试使用正则表达式解析html。Regex不是用来解析html的。使用预先存在的库,如php的DOMDocument。请尝试:
$re='%]*>(.*?%is'-但请注意,如果您有嵌套表,这将不起作用。我知道是这样的。但是,由于严格的要求,我必须使用正则表达式。@user1790263检查编辑。.考虑到您的任务,使用s选项即dotall选项来匹配您的要求是没有意义的。您可能希望将表达式包装在
()
中,以将其转换为捕获组@Fake.it.Til.U.make.ItNo,这不起作用。我已经试过了。这里的问题是换行符没有被忽略。正则表达式匹配在换行处停止。我如何克服这一点?