使用正则表达式查找 PHP 中的所有 HTML 表行


Find all HTML table rows in PHP with regexp

试图使用此运算符查找所有 HTML

行,但没有任何内容:
preg_match_all("#<tr[^>]*>.*</tr>#", $content, $matches);

怎么了?

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

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

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

试试这个:

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

我认为使用PHP HTML解析器会取得更大的成功。