-1

ASP.NETでResponse.Writeを使用してHTMLTableを使用してエクスポートし、すべての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として正規表現を使用して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 に答える