我有跟随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>
答案 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