php正则表达式,用于在html中从表中获取行
我有一个远程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 </
<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,这不起作用。我已经试过了。这里的问题是换行符没有被忽略。正则表达式匹配在换行处停止。我如何克服这一点?