2010-09-27 60 views
0

目前我試圖解析一些HTML並返回一個數組與每個元素內的值。如何解析HTML和返回數組中的值使用regex.split

例如:

如果我通過以下標記成一個函數

var element = "td"; 
var html = "<tr><td>1</td><td>2</td></tr>"; 
return Regex.Split(html, string.Format("<{0}*.>(.*?)</{0}>", element)); 

而且我希望背面的陣列[] {1,2}

什麼我正則表達式需要看起來像?目前我的陣列回來很多元素和我的正則表達式技能缺乏

+6

[解析(X)HTML與RegEx!?!!!! ???](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-標籤/ 1732454#1732454)那個笑話永遠不會變老,是嗎? – dtb 2010-09-27 20:37:29

+2

在你繼續下去之前,請閱讀(編輯-dtb擊敗我) – Donut 2010-09-27 20:39:19

+0

@dtb:nope,* never *。 – BoltClock 2010-09-27 20:43:06

回答

6

不要使用正則表達式解析HTML。您可以使用HTML Agility Pack

例如:

HtmlDocument doc = new HtmlDocument(); 
doc.Parse(str); 

IEnumerable<string> cells = doc.DocumentNode.Descendants("td").Select(td => td.InnerText); 
1

你真的不應該使用正則表達式來解析HTML。 html不是一種常規的語言,所以正則表達式不能正確解釋它。你應該使用解析器。

c#has html parsers for this

相關問題