正则表达式获取标签

时间:2011-01-14 18:42:24

标签: c# html regex vb.net

我有一个像这样的HTML:

<h1> Headhing </h>
<font name="arial">some text</font></br>
some other text

在C#中, 我想得到如下的输出。只需在字体开头标记和结束标记内容

<font name="arial">some text</font>

3 个答案:

答案 0 :(得分:4)

我不建议尝试使用正则表达式。

我使用HTML Agility Pack来解析HTML并获得我想要的内容。 这是一个可爱的HTML解析器,通常建议使用它。这将需要格式错误的HTML并按摩它到XHTML,然后是一个可遍历的DOM,比如XML类。因此,对于您在野外找到的代码非常有用。

还有一个来自Microsoft MSHTML的HTML解析器,但我还没有尝试过。

答案 1 :(得分:4)

首先,您的HTML是错误的。您应该使用<h1>而不是</h1>关闭</h>。这一点就是为什么reg ex不适合解析标签。

其次,关于用正则表达式解析html的问题,有数百个问题。答案是不。使用类似html敏捷包的东西。

答案 2 :(得分:1)

 Regex regExfont = new Regex(@"<font name=""arial""[^>]*>.*</font>");
 MatchCollection rows = regExfont.Matches(string);

好的网站是http://www.regexlib.com/RETester.aspx