文字列から関連するすべてのHTMLタグまたは任意のHTMLを削除する簡単な方法はありますか?
例えば:
string title = "<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )"
上記は実際にあるはずです:
「ハルク・ホーガンのセレブリティチャンピオンシップレスリング[プロジェクト#206010](リアリティシリーズ)」
次のような単純な正規表現を使用できます。
public static string StripHTML(string input)
{
return Regex.Replace(input, "<.*?>", String.Empty);
}
このソリューションには独自の欠陥があることに注意してください。詳細については、 StringのHTMLタグを削除する (特に@mehaaseのコメント)を参照してください
別の解決策は、 HTML Agility Pack を使用することです。
次のライブラリを使用して例を見つけることができます: HTMLアジリティパック-コンテンツを削除せずに不要なタグを削除しますか?
Html Agility pack を使用して文字列を解析し、InnerTextを取得できます。
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(@"<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )");
string result = htmlDoc.DocumentNode.InnerText;
文字列に以下のコードを使用すると、html部分のない完全な文字列を取得できます。
string title = "<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )".Replace(" ",string.Empty);
string s = Regex.Replace(title, "<.*?>", String.Empty);