-1

我在 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>
4

1 回答 1

0

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

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

这是一个使用您的输入进行测试的链接:

http://regexhero.net/tester/?id=c1458e14-de87-4f57-9850-3ee00e573566

在此处输入图像描述

如果您不喜欢像 John Saunders 那样使用 Regex 解析 HTML,可以使用HtmlAgilityPack

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);
        }

    }
}
于 2012-08-23T23:07:20.447 回答