如何使用C#中的正则表达式解析HTML?
例如,给定HTML代码
<s2> t1 </s2> <img src='1.gif' /> <span> span1 <span/>
我想获得
1. <s2>
2. t1
3. </s2>
4. <img src='1.gif' />
5. <span>
6. span1
7. <span/>
如何在C#中使用正则表达式?
在我的例子中,HTML输入不是像XHTML那样格式良好的XML。因此,我不能使用XML解析器来执行此操作。
答案 0 :(得分:6)
正则表达式是一种解析HTML的非常糟糕的方法。如果您可以保证您的输入将是格式良好的XML(即XHTML),您可以使用XmlReader读取元素,然后根据需要将它们打印出来。
答案 1 :(得分:4)
这已经被几十次回答了,但需要重复一遍:正则表达式只能解析常规语言,这就是为什么它们被称为正则表达式。 HTML不是一种常规语言(因为过去十年中每个大学生都可能至少证明过一次),因此无法通过正则表达式进行解析。
答案 2 :(得分:3)
您可能想要尝试Html Agility Pack http://www.codeplex.com/htmlagilitypack。它甚至可以处理格式错误的HTML。
答案 3 :(得分:0)
我在C#中使用了这个正则表达式,并且它有效。谢谢你的所有答案。
<([^<]*)>|([^<]*)
答案 4 :(得分:-3)
您可能只想使用字符串函数。 make&lt;和&gt;作为解析的指标。