我有使用正則表達式準備字符串的問題。 我寫了這個功能:使用C#去除HTML標籤
private String parseAnswer(String res)
{
String[] pattern = new String[16] { "<head[^>]*?>.*?</head>", "<style[^>]*?>.*?</style>", "<script[^>]*?.*?</script>", "<object[^>]*?.*?</object>", "<embed[^>]*?.*?</embed>", "<applet[^>]*?.*?</applet>", "<noframes[^>]*?.*?</noframes>", "<noscript[^>]*?.*?</noscript>", "<noembed[^>]*?.*?</noembed>", "</?((address)|(blockquote)|(center)|(del))", "</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))", "</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))", "</?((table)|(th)|(td)|(caption))", "</?((form)|(button)|(fieldset)|(legend)|(input))", "</?((label)|(select)|(optgroup)|(option)|(textarea))", "</?((frameset)|(frame)|(iframe))" };
String[] replacement = new String[16] { " ", " ", " ", " ", " ", " ", " ", " ", " ", "\n$0", "\n$0", "\n$0", "\n$0", "\n$0", "\n$0", "\n$0" };
for (int i = 0; i < pattern.Length; i++)
{
res = Regex.Replace(res, pattern[i], replacement[i]);
}
return res;
}
這個函數獲取HTML代碼作爲輸入。我想清除一些HTML標籤。要做到這一點,我準備了陣列的模式。但似乎我的功能並沒有清除HTML代碼。 我的模式是我想要移除的HTML標記列表。我不刪除一些標籤,但只添加\ n。
你能幫我這個正則表達式嗎?或者給我任何圖書館做任務?我的目標是刪除HTML標籤,只接收網站文本解析。
編輯: 好吧我可以使用HTMLAgilityPack,但我有幾個問題: htmlDoc.LoadHtml(URL); - 我需要翻譯結果爲UTF8 - > HTMLAgilityPack有任何功能轉換? 第二個通常我想將InnerText的結果放到Json併發送給Javascript。 我如何刪除字符與禁止在Javascript中?