スポンサーリンク
JavaでHTMLタグを削除したいが、<br />タグだけは残したいことがあった。
そこでbrタグ以外のタグを削除する方法を探したが、Javaではなかなか見つからない。
そこで、視点を変えてsplit関数を使う方法を考えた。
正攻法はremoveall関数で正規表現を使うのだろうが、「特定のタグ以外のタグ」を正規表現でやろうにも難易度が高く時間もかかりそうだったので、もっと手軽な方法を考えた。
それが以下コード。
/** * brタグ以外を削除する * @param line * @return */ private static String removeTagBrOther(String data) { // タグで分けて配列に格納 String[] dataArr = data.split("<.+?>"); // 改行を付与する StringBuilder sb = new StringBuilder(); for(String value : dataArr) { // 空白要素は含めない if(value.trim().length() != 0){ sb.append(value); sb.append(TAG_BR); } } return sb.toString(); }
1.split関数で正規表現を使い、すべてのタグで分けて配列に格納
2.その配列から空白要素を除く要素を取り出し、その際にbrを付与
以上でタグを削除し自分の好みの箇所にタグを入れることができた。
brタグ以外にもいろいろ応用が効きそうな方法。
スポンサーリンク
スポンサーリンク