使用regex查找PHP中的所有HTML表行

时间:2012-08-07 13:48:44

标签: php html regex parsing preg-match-all

尝试查找所有HTML< table>使用此运算符的行,但没有:

preg_match_all("#<tr[^>]*>.*</tr>#", $content, $matches);

出了什么问题?

3 个答案:

答案 0 :(得分:4)

preg_match_all ('#<tr[^>]*>(.*?)</tr>#s')

添加了“s”标志,以便它也匹配换行符,匹配的问号(懒惰),还添加了括号(捕获组)。

答案 1 :(得分:3)

我认为使用PHP HTML parser可以获得更多成功。

答案 2 :(得分:3)

任何正则表达式都会遇到嵌套表的问题,除非你遇到复杂的递归表达式。

请改为尝试:

$dom = new DOMDocument();
$dom->loadHTML($content);
$matches = $dom->getElementsByTagName("tr");
$count = $matches->length;