如何使用正则表达式提取JSON中Collections与Solutions分组的对应Id值
解决方法
首选方案(准确率100%)
不要使用正则提取JSON字段,直接用你所用编程语言自带的JSON解析库处理响应即可,完全不会出现ID归属混淆的问题,操作逻辑:
- 将返回的JSON字符串转为对应语言的对象/字典结构
- 如需提取Collections的ID,直接取
Collections数组遍历所有元素,读取每个元素的Id属性即可 - 如需提取Solutions的ID,直接取
Solutions数组遍历所有元素,读取每个元素的Id属性即可
正则提取方案(仅适合临时快速提取场景)
使用正则正向预查限定ID所属的父节点,即可实现分类提取:
- 提取所有Collections下的ID:
正则表达式:/(?<="Collections":\[.*?)"Id":"([^"]+)"/gs
捕获组1即为匹配到的ID值,修饰符s让.可以匹配换行符,适配格式化后的JSON响应 - 提取所有Solutions下的ID:
正则表达式:/(?<="Solutions":\[.*?)"Id":"([^"]+)"/gs
捕获组1即为匹配到的ID值,仅需替换预查中的节点名称即可切换提取目标
若你使用的正则引擎不支持可变长度正向预查,可分两步操作:先提取对应父节点的完整数组字符串,再在该字符串内用
/"Id":"([^"]+)"/g匹配所有ID即可。
内容的提问来源于stack exchange,提问作者Prateek
相关产品推荐
相关产品推荐

