美文网首页
Jsoup提取字符串保留换行给客户端

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

作者: Rex_叶然 | 来源:发表于2019-03-20 15:38 被阅读0次

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

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

    相关文章

      网友评论

          本文标题:Jsoup提取字符串保留换行给客户端

          本文链接:https://www.haomeiwen.com/subject/rsxtvqtx.html