正規表現を使用した文字列の準備に問題があります。私はこの関数を書きました:
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。
この正規表現を手伝ってくれませんか。または、それを実行するためのライブラリを教えてください。私の目的は、解析するWebサイトのテキストのみを受信するようにHTMLタグを削除することです。
編集:わかりました。HTMLAgilityPackを使用できますが、いくつか質問があります。htmlDoc.LoadHtml(URL); -結果をUTF8に変換する必要があります->HTMLAgilityPackには変換する関数がありますか?次に、一般的に、InnerTextをJsonに配置して、Javascriptに送信したいと思います。Javascriptで禁止されているcharを削除するにはどうすればよいですか?