2011-07-07 42 views

回答

5

DOM解析器是最可靠的提取數據的方法,但是如果HTML是理智的話,正則表達式可以做相當不錯的工作。 (即文本:<body或:</body不會出現在註釋,腳本,樣式表,CDATA節或屬性值中,而BODY元素的開始標記屬性不包含:>字符。)該正則表達式捕獲第一個最內層BODY元素(只應該永遠是一個):

var bodytext = ''; 
var m = text.match(/<body[^>]*>([^<]*(?:(?!<\/?body)<[^<]*)*)<\/body\s*>/i); 
if (m) bodytext = m[1]; 

它實現傑弗裏·弗裏德爾的「開卷半實物」效率技術,因此是相當快的。