我在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>
答案 0 :(得分:0)
这个简单的正则表达式将会这样做:
</?(a|A).*?>
以下是使用您的输入进行测试的链接:
http://regexhero.net/tester/?id=c1458e14-de87-4f57-9850-3ee00e573566
如果您不喜欢使用Regex解析HTML作为John Saunders,您可以使用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);
}
}
}