Java中正則表達式去除html標籤

Java中正則表達式去除html的標籤,主要目的更精確的顯示內容,好比前一段時間在作相似於博客中發佈文章功能,當編輯器中輸入內容後會將樣式標籤也傳入後臺而且保存數據庫,可是在顯示摘要的時候,好比顯示正文的前50字做爲摘要,那麼這時須要去除全部html標籤,而後在截取50字,因此就經過了Java正則表達式實現了以下方法,代碼以下:html

    注:這是Java正則表達式去除html標籤方法。
    private static final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定義script的正則表達式
    private static final String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定義style的正則表達式
    private static final String regEx_html = "<[^>]+>"; // 定義HTML標籤的正則表達式
    private static final String regEx_space = "\\s*|\t|\r|\n";// 定義空格回車換行符
    private static final String regEx_w = "<w[^>]*?>[\\s\\S]*?<\\/w[^>]*?>";//定義全部w標籤

/**
     * @param htmlStr
     * @return 刪除Html標籤
     * @author LongJin
     */
    public static String delHTMLTag(String htmlStr) {
        Pattern p_w = Pattern.compile(regEx_w, Pattern.CASE_INSENSITIVE);
        Matcher m_w = p_w.matcher(htmlStr);
        htmlStr = m_w.replaceAll(""); // 過濾script標籤


        Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
        Matcher m_script = p_script.matcher(htmlStr);
        htmlStr = m_script.replaceAll(""); // 過濾script標籤


        Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
        Matcher m_style = p_style.matcher(htmlStr);
        htmlStr = m_style.replaceAll(""); // 過濾style標籤


        Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
        Matcher m_html = p_html.matcher(htmlStr);
        htmlStr = m_html.replaceAll(""); // 過濾html標籤


        Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE);
        Matcher m_space = p_space.matcher(htmlStr);
        htmlStr = m_space.replaceAll(""); // 過濾空格回車標籤


        htmlStr = htmlStr.replaceAll(" ", ""); //過濾 
        return htmlStr.trim(); // 返回文本字符串
    }

  ps:方法僅供參考,供你們一塊兒互相學習,如有不足或者疑問歡迎評論。java

相關文章
相關標籤/搜索