JavaのreplaceAllの正規表現を使ってHTMLタグを文字列から除去する

すべてのHTMLタグを除去

    /**
     * HTMLタグ削除(すべて)
     *
     * @param str 文字列
     * @return HTMLタグ削除後の文字列
     */
    public static String htmlTagRemover(String str) {
        // 文字列のすべてのタグを取り除く
        return str.replaceAll("<.+?>", "");
    }


特定のタグをすべて除去

    /**
     * HTMLタグ削除(特定のタグ)
     *
     * @param str 文字列
     * @param tagName タグ名
     * @return HTMLタグ削除後の文字列
     */
    public static String htmlTagRemover(String str, String tagName) {
        // 文字列のすべてのタグを取り除く
        return str.replaceAll("<" + tagName + ".+?>", "");
    }


replaceAllとreplaceの違い

シンプルに言えば正規表現を使うかどうかです。

例えば以下の文字列の中から文字列「Trick」を消したい場合

Java Trick IT Trick Script Trick

この場合は消したい文字列がはっきり決まってるため、replaceAllを使う必要がありません。replaceで十分です。

また、この場合はreplaceAllを使っても同じ結果を得られますが、replaceAllを使う場合に注意しないと行けないのは決まった文字列を消したい時に、その文字列の中に正規表現の予約語が含まれている時です。

  • 2JavaのreplaceAllの正規表現を使ってHTMLタグを文字列から除去する

<