JAVA過(guò)濾標(biāo)簽實(shí)現(xiàn)將html內(nèi)容轉(zhuǎn)換為文本的方法示例
本文實(shí)例講述了JAVA過(guò)濾標(biāo)簽實(shí)現(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)?"":">"));//開(kāi)始標(biāo)簽 if(!"img".equals(tag)) tags.add("</"+tag+">");//結(jié)束標(biāo)簽 s_tags.add("#REPLACETAG"+tag+(halfTag.contains(tag)?"":"REPLACETAG#"));//盡量替換為復(fù)雜一點(diǎn)的標(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:這里再為大家推薦一款功能類(lèi)似的在線工具供大家參考使用:
在線html/js/css代碼過(guò)濾工具
http://tools.jb51.net/code/htmlfilter
另外,關(guān)于正則操作,這里再為大家推薦兩款相關(guān)在線工具:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
詳解RocketMQ中的消費(fèi)者啟動(dòng)與消費(fèi)流程分析
本文主要介紹了RocketMQ的消費(fèi)者啟動(dòng)流程,結(jié)合官方源碼和示例,一步步講述消費(fèi)者在啟動(dòng)和消息消費(fèi)中的的工作原理及內(nèi)容,并結(jié)合平時(shí)業(yè)務(wù)工作中,對(duì)我們所熟悉的順序、push/pull模式等進(jìn)行詳細(xì)分析,以及對(duì)于消息消費(fèi)失敗和重投帶來(lái)問(wèn)題去進(jìn)行分析,需要的朋友可以參考下2022-07-07mybatis3.3+struts2.3.24+mysql5.1.22開(kāi)發(fā)環(huán)境搭建圖文教程
這篇文章主要為大家詳細(xì)介紹了mybatis3.3+struts2.3.24+mysql5.1.22開(kāi)發(fā)環(huán)境搭建圖文教程,感興趣的小伙伴們可以參考一下2016-06-06SpringBoot動(dòng)態(tài)導(dǎo)出word文檔實(shí)整教程(復(fù)制即可使用)
在我們做項(xiàng)目的時(shí)候會(huì)需要把數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出到word當(dāng)中,下面這篇文章主要給大家介紹了關(guān)于SpringBoot動(dòng)態(tài)導(dǎo)出word文檔實(shí)整教程的相關(guān)資料,文中的代碼復(fù)制即可使用,需要的朋友可以參考下2023-06-06Spring Boot 2.X優(yōu)雅的解決跨域問(wèn)題
這篇文章主要給大家介紹了關(guān)于Spring Boot 2.X如何優(yōu)雅的解決跨域問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot 2.X具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Java實(shí)現(xiàn)顯示指定類(lèi)型的文件
這篇文章主要介紹了Java實(shí)現(xiàn)顯示指定類(lèi)型的文件,需要的朋友可以參考下2014-03-03SpringBoot入門(mén)實(shí)現(xiàn)第一個(gè)SpringBoot項(xiàng)目
今天我們一起來(lái)完成一個(gè)簡(jiǎn)單的SpringBoot(Hello World)。就把他作為你的第一個(gè)SpringBoot項(xiàng)目。具有一定的參考價(jià)值,感興趣的可以了解一下2021-09-09lombok注解@Data使用在繼承類(lèi)上時(shí)出現(xiàn)警告的問(wèn)題及解決
Lombok的@Data注解簡(jiǎn)化了實(shí)體類(lèi)代碼,但在子類(lèi)中使用時(shí)會(huì)出現(xiàn)警告,指出equals和hashCode方法不會(huì)考慮父類(lèi)屬性,解決方法有兩種:一是在父類(lèi)上使用@EqualsAndHashCode(callSuper=true)注解;二是通過(guò)配置lombok.config文件,均能有效解決警告問(wèn)題2024-10-10Java實(shí)現(xiàn)經(jīng)典游戲打磚塊游戲的示例代碼
這篇文章主要介紹了如何利用Java實(shí)現(xiàn)經(jīng)典的游戲—打磚塊。玩家操作一根螢?zāi)簧纤降摹鞍糇印?,讓一顆不斷彈來(lái)彈去的“球”在撞擊作為過(guò)關(guān)目標(biāo)消去的“磚塊”的途中不會(huì)落到螢?zāi)坏紫?。感興趣的小伙伴可以了解一下2022-02-02