Jsoup提取字符串保留换行给客户端

这又是个看似简单却要折腾很久达不到完美效果的需求。

1.直接得到字符串

document.text()
,丢失了换行

2.解析p 解析h1 解析div 万一别人用的不是这3标签 或者彼此嵌套 都会存在问题

或者干脆

document.select(‘*’)
去重复过程去嵌套过程更麻烦甚至不可为,有的文本内容本来就是重复的,那么有没有保留换行的提取文本

3.保留换行的提取文本

Jsoup.clean(jsArticleDetail.toString(), "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));
这个保留了换行但是网页网上的具体几个空格仍然不理想,那么只有把多余的空行换成\n了,虽然可能会替换原本确实存在的空格,但是是目前最接近需求的结果了

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.优化

我们可以再优化一下,当大于2个空格的时候我们再进行替换成\n,那文章中非要有2个多空格也没有更好的方法。 你也可以根据实际情况把2改为 其他数字 根据你解析的网页进行调整

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
版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,150评论 0 7
  • 服务器处理富文本编辑器提交的内容时, 因排版的需求不能对 HTML 标签进行转义, 但为了防止 XSS 攻击, 又...
    jnil阅读 16,673评论 0 9
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,736评论 1 45
  • 第115章 番外3:容齐:永无出路的爱(1) “命中注定,会有那样一个女子,让我年轻而短暂的生命找到存在的意义。然...
    誓言婉秋阅读 188评论 0 1
  • 笑话~A*#今儿在休息的时候…母上朋友过来家里窜们,说着说着就讲起他以前的一件事儿…说是有次扔旧被子的时候居然从被...
    最爱颠茄小F阅读 241评论 0 0