Jsoup提取字符串保留換行給客戶端

這又是個看似簡單卻要折騰很久達不到完美效果的需求。

1.直接得到字符串

document.text()
,丟失了換行

2.解析p 解析h1 解析div 萬一別人用的不是這3標簽 或者彼此嵌套 都會存在問題

或者干脆

document.select(‘*’)
去重復過程去嵌套過程更麻煩甚至不可為,有的文本內(nèi)容本來就是重復的,那么有沒有保留換行的提取文本

3.保留換行的提取文本

Jsoup.clean(jsArticleDetail.toString(), "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));
這個保留了換行但是網(wǎng)頁網(wǎng)上的具體幾個空格仍然不理想,那么只有把多余的空行換成\n了,雖然可能會替換原本確實存在的空格,但是是目前最接近需求的結(jié)果了

String baseContent = Jsoup.clean(jsArticleDetail.toString(), "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));

String newText = baseContent.replaceAll("\s+", "\n");

//去掉收尾多余的空格

String trueContent = newText.replaceFirst("\n", "").trim();

4.優(yōu)化

我們可以再優(yōu)化一下,當大于2個空格的時候我們再進行替換成\n,那文章中非要有2個多空格也沒有更好的方法。 你也可以根據(jù)實際情況把2改為 其他數(shù)字 根據(jù)你解析的網(wǎng)頁進行調(diào)整

String baseContent = Jsoup.clean(jsArticleDetail.toString(), "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));
String newText = baseContent.replaceAll("\s{2,}", "\n");
String trueContent = newText.replaceFirst("\n", "").trim();
特別感謝正則提供LX HAH


作者:Rex葉然
來源:CSDN
原文:https://blog.csdn.net/qq_28844947/article/details/88689710
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 最先接觸編程的知識是在大學里面,大學里面學了一些基礎的知識,c語言,java語言,單片機的匯編語言等;大學畢...
    oceanfive閱讀 3,395評論 0 7
  • 服務器處理富文本編輯器提交的內(nèi)容時, 因排版的需求不能對 HTML 標簽進行轉(zhuǎn)義, 但為了防止 XSS 攻擊, 又...
    jnil閱讀 16,907評論 0 9
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 28,827評論 1 45
  • 第115章 番外3:容齊:永無出路的愛(1) “命中注定,會有那樣一個女子,讓我年輕而短暫的生命找到存在的意義。然...
    誓言婉秋閱讀 212評論 0 1
  • 笑話~A*#今兒在休息的時候…母上朋友過來家里竄們,說著說著就講起他以前的一件事兒…說是有次扔舊被子的時候居然從被...
    最愛顛茄小F閱讀 260評論 0 0

友情鏈接更多精彩內(nèi)容