タイトルのまま。
HTMLパーサを使用せずにHTMLソースからテキストのみを抽出したかったんですが、ググっても出てこなかったので備忘録としてここに残します。
方法
- 正規表現を用いてHTMLタグを全て取り除く
雑に山かっこ(<>)に囲まれたものを全て取り除きます。
<.*?>
ですので、テキストに山かっこで囲まれた文字列がある場合は全て消えてしまいます。
完全なものが欲しい方は、そこら辺に転がってるHTMLパーサを利用してください。
Javaでの実装例
Java
public static String extractTextFromHTML(String html) {
return html.replaceAll("<.*?>", "\n").replaceAll("\\n+", "\n");
}
全てのHTMLタグを改行コードに置換した後、連続する改行コードを一つの改行コードに置換しています。
C#での実装例
C#
using System.Text.RegularExpressions;
public static string ExtractTextFromHTML(string html) {
html = Regex.Replace(html, @"<.*?>", "\n");
return Regex.Replace(html, @"\n+", "\n");
}
全てのHTMLタグを改行コードに置換した後、連続する改行コードを一つの改行コードに置換しています。