用于PHP解析的正则表达式(Regex)

时间:2010-08-27 14:22:06

标签: php html regex html-table

  

可能重复:
  RegEx match open tags except XHTML self-contained tags

我遇到了奇怪的正则表达式问题,我正在用PHP解析一些HTML表。

RegEx我正在使用:<td[^>]*>(h.*?)</td>

<td>other data</td> <td>other data</td><td>Data_needed</td> <td>--</td>

但它也匹配所有其他数据。

现在我想将其与<td>Data_needed</td> <td>--</td>

相匹配

我尝试了一些正则表达式,它们提供了像

这样的输出
other data</td> <td>other data</td><td>Data_needed</td> <td>--

从第一个<td>开始到最后一个</td>

但我希望来自Data_needed

<td>Data_needed</td> <td>--</td>

3 个答案:

答案 0 :(得分:8)

Do not use regex for parsing HTML or XML (including XHTML). Ever.

改为使用HTML或XML解析器。快速搜索“php html parsing”出现this tool, Simple HTML DOM, as the first hit。 PHP还内置了DOMSAX工具。

答案 1 :(得分:3)

您可以使用Simple HTML DOM代替。

  

用PHP5 +编写的HTML DOM解析器   你很容易操纵HTML   方式!

答案 2 :(得分:0)

一般的html解析不应该使用正则表达式来完成,但如果你的HTML很简单而不是嵌套,你可以试试

.*<td[^>]*>(.*?)</td>\s*<td>--</td>