C# 在导入到Excel之前从ASP.NET操作HTML

C# 在导入到Excel之前从ASP.NET操作HTML,c#,asp.net,regex,excel,hyperlink,C#,Asp.net,Regex,Excel,Hyperlink,我正在使用ASP.NET中的HTMLTable使用Response.Write导出。将所有HTML表代码写入Excel文件 我现在需要做的是删除这个Excel文件中的所有超链接。有没有比使用正则表达式更好的方法 如果正则表达式是最好的方法,我如何才能消除标记而不是中间的ID <td class="header">Details ID</td> <td> <div class="id"><a class="

我正在使用ASP.NET中的HTMLTable使用Response.Write导出。将所有HTML表代码写入Excel文件

我现在需要做的是删除这个Excel文件中的所有超链接。有没有比使用正则表达式更好的方法

如果正则表达式是最好的方法,我如何才能消除标记而不是中间的ID

    <td class="header">Details ID</td>
      <td>
         <div class="id"><a class="details" href="details?id=1232" target="_blank">1232</a></div>
      </td>
      <td>
         <div class="id"><a class="details" href="details?id=1233" target="_blank">1233</a></div>
      </td>
      <td>
         <div class="id"><a class="details" href="details?id=1234" target="_blank">1234</a></div>
      </td>
   </tr>

详细信息ID

这个简单的正则表达式可以:

</?(a|A).*?>

-1:请看@JohnSaunders:你觉得HtmlAgilityPack怎么样?在这种情况下,这是一个很好的选择……我从未使用过它,但很多人都说它有很多优点。很多人都说使用正则表达式有很多不好的地方。Html敏捷包就是我用来解决这个问题的。它更适合这种情况。不要将正则表达式与HTML一起使用:
class Program
{
    static void Main(string[] args)
    {
        RemoveHyperlinksButKeepText();
    }

    private static void RemoveHyperlinksButKeepText()
    {
        var htmlDoc = new HtmlDocument();
        htmlDoc.Load(@"C:\YourHtmlFile.html");

        var links = htmlDoc.DocumentNode.SelectNodes("//a");

        string html = htmlDoc.DocumentNode.OuterHtml;

        foreach (HtmlNode link in links)
        {
            var linkText = link.InnerText;

            html = html.Replace(link.OuterHtml, linkText);
        }

    }
}