如何使用C#中的正则表达式解析HTML?

Mik*_*108 0 html c# regex parsing

如何使用C#中的正则表达式解析HTML?

例如,给定HTML代码

<s2> t1 </s2>  <img src='1.gif' />  <span> span1 <span/>
Run Code Online (Sandbox Code Playgroud)

我想要获得

1.  <s2>
2.  t1
3. </s2>
4. <img src='1.gif' />
5. <span>
6. span1
7. <span/>
Run Code Online (Sandbox Code Playgroud)

如何在C#中使用正则表达式?

在我的例子中,HTML输入不是像XHTML那样格式良好的XML.因此,我不能使用XML解析器来执行此操作.

bob*_*mcr 6

正则表达式是一种解析HTML的非常糟糕的方法.如果您可以保证您的输入将是格式良好的XML(即XHTML),则可以使用XmlReader读取元素,然后根据需要将其打印出来.

  • 然后你会遇到一个非常复杂的问题,一般来说......使用所有隐含元素,可选的结束标记等进行HTML解析并不好玩.但是,您可以利用现有的库,例如... http://www.codeplex.com/htmlagilitypack (3认同)
  • 不,正则表达式不是*"解析HTML的不好方法",因为这意味着正则表达式可以解析HTML*,但实际情况并非如此.从数学上证明了正则表达式*不能*解析HTML.事实上,几乎每个大学生都必须在作业或考试期间的某些时候证明这一点. (2认同)