如何在c#正则表达式中通过id获取td的值?

时间:2015-05-11 14:06:17

标签: c# regex

我有跟随html,有更多的td,但只放了几个以下。我希望通过c#代码获得具有id“hdNumber”的TD的值。我想使用正则表达式。有时从窗口生成html(电子邮件)它可能会在id之前和之后呈现html,如“8332没有引号。我想只得到8332号。

<table>
<tr>
    <TD style="COLOR: #666" vAlign=top>
         Good<TD>
       <TD id="hdNumber"
       style="BACKGROUND: white; COLOR: white; DISPLAY: none">8332
    </TD> 
</tr>
</table>

2 个答案:

答案 0 :(得分:2)

Don't use regex to parse HTML。您可以使用HtmlAgilityPack

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlString);
var hdNumber = doc.GetElementbyId("hdNumber");
if(hdNumber != null)
{
    string number = hdNumber.InnerText.Trim('\r', '\n', ' ', '"');  // 8332
}

我已根据需要使用Trim('\r', '\n', ' ', '"')删除可能的前导和尾随空格,换行符和引号。

答案 1 :(得分:0)

  

我想使用正则表达式。

如果您不想使用DOM Parser(推荐),则可以将以下内容与s修饰符或DOTALL一起使用:

<TD\s*id\s*=\s*"?hdNumber"?.*?>(.*?)</TD>

并使用$1

提取数字

请参阅DEMO