試圖找到所有HTML <表>行與該運營商在PHP所有的HTML錶行,但沒有:查找與正則表達式
preg_match_all("#<tr[^>]*>.*</tr>#", $content, $matches);
有什麼不對?
試圖找到所有HTML <表>行與該運營商在PHP所有的HTML錶行,但沒有:查找與正則表達式
preg_match_all("#<tr[^>]*>.*</tr>#", $content, $matches);
有什麼不對?
除非進入複雜的遞歸表達式,否則任何正則表達式都會遇到嵌套表的問題。
試試這個:
$dom = new DOMDocument();
$dom->loadHTML($content);
$matches = $dom->getElementsByTagName("tr");
$count = $matches->length;
如果我想在之後查看
由於'$ matches'是一個DOMNodeList,每個節點都有一個屬性'childNodes',它是子節點的另一個DOMNodeList。 – DavidS 2012-08-08 06:10:11
@Kolink嗯,我可能會遇到當我必須解析無效的HTML DOMDocument解析失敗。 – ravisoni 2013-08-30 07:03:49
我想你會在PHP HTML parser上獲得更多的成功。
使用https://code.google.com/p/ganon/(Ganon)糊狀物更快,更好。 – ravisoni 2013-08-30 07:04:49
preg_match_all ('#<tr[^>]*>(.*?)</tr>#s')
增加的「S」標誌,這樣它也匹配換行符,問號匹配(懶惰),並且還添加了括號(捕捉組)。
[小馬他來...](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) – 2012-08-07 13:50:26
[The小馬他來...](http://stackoverflow.com/a/1732454/1338999)不要使用正則表達式來描述HTML! – Matt 2012-08-07 13:50:47
我真的不知道我們是否應該能夠用罐裝'HTML/Regexp'原因來解決問題 – 2012-08-07 13:51:19