java - Groovy 使用 RegEx 拆分获取其他 2 个字符串之间的字符串
问题描述
我有一个问题,我也搜索了很长时间才能得到答案。但没有什么对我有用。我希望有人可以帮助我。
我有一个很长的字符串,如下所示:
"... {"test":"test","name":"version1","archived":false,"released":false,"projectId":xx5},{"test":"test","name":"fix1","archived":false,"released":false,"projectId":xx5}, ..."
现在我想获取“名称”之后的所有值。在这个小例子中,它是“version1”和“fix1”。我尝试用正则表达式来做到这一点。但似乎我做错了什么。编程语言是 GROOVY。
def raiseStarList = []
def regex = '(?<="name":")*(?=",")'
for (String s : response.split(regex)) {
if ( s.contains("Raise") ) {
raiseStarList << s
}
}
println raiseStarList
如您所见,我尝试在“名称”:“和”之间进行过滤
但是我的 RegEx 无法正常工作。
解决方案
def s='''[{"test":"test","name":"version1","archived":false,"released":false,"projectId":"xx5"},{"test":"test","name":"fix1","archived":false,"released":false,"projectId":"xx5"}]'''
//using json parser
def j = new groovy.json.JsonSlurper().parseText(s)
def res = j.collect{it.name}
println res
//using regex
def r = /"name":"([^"]*)"/
def res2=(s=~r).collect{it[1]}
println res2
推荐阅读
- encryption - 使用秘密值的 SHA 哈希作为其外部 ID 是否安全?
- android - 如何在不使用 React Native 中的任何 API 调用的情况下重新渲染组件?
- ruby-on-rails - URL中冒号后跟通配符“*someparam”是什么意思
- python - 从 Google 搜索中收集链接文本和链接 href
- swift - 如何使用swift在表格视图中搜索多个数据?
- javascript - 检查结果对象值在 javascript 中是否有效
- c# - 如何从数组中的可变数据创建并让用户下载 Excel 文件?
- python - 为什么 dlib 的 load_rgb_image() 方法会旋转我的一些图像?
- node.js - npm 错误 - 找不到模块 './selenium-webdriver/lib/input'
- xslt-2.0 - 动态替换给定数据中的子字符串(XML 到固定长度)