java - 如何获取一个长字符串,并创建以特定字符序列开头 & 结尾的较小字符串
问题描述
在我的程序中,我使用了 jsoup 来解析一个 url 并生成一个 html 文档。然而,我从中获取数据的站点只是一段纯文本,没有任何元素或其他功能。我需要查看此文档,并创建以某种字符模式开头和结尾的字符串。我一直在研究正则表达式。
目前,我认为完成我的目标的最佳方法是将 HTML 文档转换为字符串。我要创建的每个子字符串都以 "{"world":"" 开头并以 ""}" 结尾,但是这些块之间的信息可以更改,并且长度可变。
我需要知道如何使用正则表达式来检测这些字符串并从中创建字符串,或者是否有更好的方法来完成我想要做的事情,
解决方案
您可以使用String.split来拆分字符串。如果您想要的部分由 分隔}{"world":""
,那么您可以使用类似的东西作为分隔符:
String string = "{\"world\":\"whatever\"}{\"world\":\"something\"}";
String[] parts = string.split("}{\"world\":");
String part1 = parts[0]; // {"world":"whatever"
String part2 = parts[1]; // "something"}
然后我想你可以使用String.replace从每个部分中剪掉你不想要的部分:
String part1Cut = part1.replace("{\"world\":", ""); // "whatever"
String part2Cut = part2.replace("}", ""); // "something"
我相信有一种更清洁的方法可以做到这一点(我在操作字符串方面没有太多经验),但我只是想把这些方法带给你,以防你不知道它们。
推荐阅读
- bash - sed 或 awk 删除包含换行符的模式
- xtermjs - 多个终端实例化,回滚不适用于隐形终端
- c++ - 如何将不同无序映射的地址存储到另一个无序映射中,然后通过引用来使用?
- visual-c++ - MBCS 文件菜单生成 ???? 人物
- javascript - Symfony 3.4 - Webpack Encore 和 DOMPurify
- xml - XSL:根据属性计数和匹配创建组
- windows - 在 Sublime Text 3 中构建时权限被拒绝
- c++ - 在 C++ 中的 if 块内声明变量
- python - Python - time.time() 和 datetime.datetime.utcnow().timestamp() 返回不同的纪元
- c# - 如何使用 RegEx.Replace 替换 . 和 - 到以下日期字符串 01.04-2016 上的 /