2010-09-27 30 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

相关问题