亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JAVA過濾標(biāo)簽實現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法示例

 更新時間:2017年07月07日 09:53:50   作者:johennes  
這篇文章主要介紹了JAVA過濾標(biāo)簽實現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法,涉及java針對HTML代碼的正則替換相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了JAVA過濾標(biāo)簽實現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法。分享給大家供大家參考,具體如下:

/**
* 把html內(nèi)容轉(zhuǎn)為文本
* @param html 需要處理的html文本
* @param filterTags 需要保留的html標(biāo)簽樣式
* @return
*/
public static String trimHtml2Txt(String html, String[] filterTags){
    html = html.replaceAll("\\<head>[\\s\\S]*?</head>(?i)", "");//去掉head
    html = html.replaceAll("\\<!--[\\s\\S]*?-->", "");//去掉注釋
    html = html.replaceAll("\\<![\\s\\S]*?>", "");
    html = html.replaceAll("\\<style[^>]*>[\\s\\S]*?</style>(?i)", "");//去掉樣式
    html = html.replaceAll("\\<script[^>]*>[\\s\\S]*?</script>(?i)", "");//去掉js
    html = html.replaceAll("\\<w:[^>]+>[\\s\\S]*?</w:[^>]+>(?i)", "");//去掉word標(biāo)簽
    html = html.replaceAll("\\<xml>[\\s\\S]*?</xml>(?i)", "");
    html = html.replaceAll("\\<html[^>]*>|<body[^>]*>|</html>|</body>(?i)", "");
    html = html.replaceAll("\\\r\n|\n|\r", " ");//去掉換行
    html = html.replaceAll("\\<br[^>]*>(?i)", "\n\r");
    List<String> tags = new ArrayList<String>();
    List<String> s_tags = new ArrayList<String>();
    List<String> halfTag = Arrays.asList(new String[]{"img","table","thead","th","tr","td"});//
    if(filterTags != null && filterTags.length > 0){
      for (String tag : filterTags) {
        tags.add("<"+tag+(halfTag.contains(tag)?"":">"));//開始標(biāo)簽
        if(!"img".equals(tag)) tags.add("</"+tag+">");//結(jié)束標(biāo)簽
        s_tags.add("#REPLACETAG"+tag+(halfTag.contains(tag)?"":"REPLACETAG#"));//盡量替換為復(fù)雜一點的標(biāo)記,以免與顯示文本混合,如:文本中包含#td、#table等
        if(!"img".equals(tag)) s_tags.add("#REPLACETAG/"+tag+"REPLACETAG#");
      }
    }
    html = StringUtils.replaceEach(html, tags.toArray(new String[tags.size()]), s_tags.toArray(new String[s_tags.size()]));
    html = html.replaceAll("\\</p>(?i)", "\n\r");
    html = html.replaceAll("\\<[^>]+>", "");
    html = StringUtils.replaceEach(html,s_tags.toArray(new String[s_tags.size()]),tags.toArray(new String[tags.size()]));
    html = html.replaceAll("\\ ", " ");
    return html.trim();
}

PS:這里再為大家推薦一款功能類似的在線工具供大家參考使用:

在線html/js/css代碼過濾工具
http://tools.jb51.net/code/htmlfilter

另外,關(guān)于正則操作,這里再為大家推薦兩款相關(guān)在線工具:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • 淺析Java中并發(fā)工具類的使用

    淺析Java中并發(fā)工具類的使用

    在JDK的并發(fā)包里提供了幾個非常有用的并發(fā)工具類。CountDownLatch、CyclicBarrier和Semaphore工具類提供了一種并發(fā)流程控制的手段,Exchanger工具類提供了在線程間交換數(shù)據(jù)的一種方法。本文主要介紹了它們的使用,需要的可以參考一下
    2022-12-12
  • 詳解RocketMQ中的消費者啟動與消費流程分析

    詳解RocketMQ中的消費者啟動與消費流程分析

    本文主要介紹了RocketMQ的消費者啟動流程,結(jié)合官方源碼和示例,一步步講述消費者在啟動和消息消費中的的工作原理及內(nèi)容,并結(jié)合平時業(yè)務(wù)工作中,對我們所熟悉的順序、push/pull模式等進行詳細(xì)分析,以及對于消息消費失敗和重投帶來問題去進行分析,需要的朋友可以參考下
    2022-07-07
  • mybatis3.3+struts2.3.24+mysql5.1.22開發(fā)環(huán)境搭建圖文教程

    mybatis3.3+struts2.3.24+mysql5.1.22開發(fā)環(huán)境搭建圖文教程

    這篇文章主要為大家詳細(xì)介紹了mybatis3.3+struts2.3.24+mysql5.1.22開發(fā)環(huán)境搭建圖文教程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • SpringBoot動態(tài)導(dǎo)出word文檔實整教程(復(fù)制即可使用)

    SpringBoot動態(tài)導(dǎo)出word文檔實整教程(復(fù)制即可使用)

    在我們做項目的時候會需要把數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到word當(dāng)中,下面這篇文章主要給大家介紹了關(guān)于SpringBoot動態(tài)導(dǎo)出word文檔實整教程的相關(guān)資料,文中的代碼復(fù)制即可使用,需要的朋友可以參考下
    2023-06-06
  • Spring Boot 2.X優(yōu)雅的解決跨域問題

    Spring Boot 2.X優(yōu)雅的解決跨域問題

    這篇文章主要給大家介紹了關(guān)于Spring Boot 2.X如何優(yōu)雅的解決跨域問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring Boot 2.X具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 深入了解MyBatis參數(shù)

    深入了解MyBatis參數(shù)

    今天小編就為大家分享一篇關(guān)于深入了解MyBatis參數(shù),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java實現(xiàn)顯示指定類型的文件

    Java實現(xiàn)顯示指定類型的文件

    這篇文章主要介紹了Java實現(xiàn)顯示指定類型的文件,需要的朋友可以參考下
    2014-03-03
  • SpringBoot入門實現(xiàn)第一個SpringBoot項目

    SpringBoot入門實現(xiàn)第一個SpringBoot項目

    今天我們一起來完成一個簡單的SpringBoot(Hello World)。就把他作為你的第一個SpringBoot項目。具有一定的參考價值,感興趣的可以了解一下
    2021-09-09
  • lombok注解@Data使用在繼承類上時出現(xiàn)警告的問題及解決

    lombok注解@Data使用在繼承類上時出現(xiàn)警告的問題及解決

    Lombok的@Data注解簡化了實體類代碼,但在子類中使用時會出現(xiàn)警告,指出equals和hashCode方法不會考慮父類屬性,解決方法有兩種:一是在父類上使用@EqualsAndHashCode(callSuper=true)注解;二是通過配置lombok.config文件,均能有效解決警告問題
    2024-10-10
  • Java實現(xiàn)經(jīng)典游戲打磚塊游戲的示例代碼

    Java實現(xiàn)經(jīng)典游戲打磚塊游戲的示例代碼

    這篇文章主要介紹了如何利用Java實現(xiàn)經(jīng)典的游戲—打磚塊。玩家操作一根螢?zāi)簧纤降摹鞍糇印?,讓一顆不斷彈來彈去的“球”在撞擊作為過關(guān)目標(biāo)消去的“磚塊”的途中不會落到螢?zāi)坏紫?。感興趣的小伙伴可以了解一下
    2022-02-02

最新評論