首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用正则表达式查找具有特定内容的json

使用正则表达式查找具有特定内容的json
EN

Stack Overflow用户
提问于 2018-12-20 18:08:37
回答 1查看 68关注 0票数 0

我有下面的txt文件,其中包含json对象。

代码语言:javascript
复制
[2018-12-10 06:30:38]..再同步健康数据... 
[2018-12-10 06:30:44]JSON回调处理--->>> 同步运动数据 [2018-12-10 06:30:44]同步运动健康数据json:{  "day" : 10,  "items" : [  {  "activeTime" : 5,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  },
{  "activeTime" : 0,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  },  {  "activeTime" : 0,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  }  ],  "month" : 12,  "startTime" : 0,
"timeSpace" : 15,  "totalActiveTime" : 81,  "totalCalory" : 0,  "totalDistance" : 0,  "StepCount" : 0,  "year" : 2018 }  
[2018-12-10 06:30:44]同步运动健康数据items.sise()=96 
[2018-12-10 06:30:38]..再同步健康数据... 
[2018-12-10 06:30:44]JSON回调处理--->>> 同步运动数据 [2018-12-10 06:30:44]同步运动健康数据json:{  "day" : 10,  "items" : [  {  "activeTime" : 5,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  },
{  "activeTime" : 0,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  },  {  "activeTime" : 0,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  }  ],  "month" : 12,  "startTime" : 0,  "timeSpace" : 15,  "totalActiveTime" : 81,  "totalCalory" : 0,  "totalDistance" : 0,  "totalCount" : 0,  "year" : 2018 }  
[2018-12-10 06:30:44]同步运动健康数据items.sise()=96

到目前为止,我已经定义了以下表达式,该表达式提取json对象。

代码语言:javascript
复制
json:.+?(?=\[2)

我只想提取一个json对象,它包含一个名为` want‘的元素。我应该在我的实际表达中添加什么?

发布带有替换的json对象位置的txt文件

代码语言:javascript
复制
[2018-12-10 06:30:44]JSON回调处理--->>> 同步运动数据 [2018-12-10 06:30:44]同步运动健康数据json:{  "day" : 10,  "items" : [  {  "activeTime" : 5,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  },
{  "activeTime" : 0,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  },  {  "activeTime" : 0,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  }  ],  "month" : 12,  "startTime" : 0,  "timeSpace" : 15,  "totalActiveTime" : 81,  "totalCalory" : 0,  "totalDistance" : 0,  "totalCount" : 0,  "year" : 2018 }  
[2018-12-10 06:30:44]同步运动健康数据items.sise()=96
[2018-12-10 06:30:38]..再同步健康数据... 
[2018-12-10 06:30:44]JSON回调处理--->>> 同步运动数据 [2018-12-10 06:30:44]同步运动健康数据json:{  "day" : 10,  "items" : [  {  "activeTime" : 5,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  },
{  "activeTime" : 0,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  },  {  "activeTime" : 0,  "calory" : 0,  "distance" : 0,  "stepCount" : 0  }  ],  "month" : 12,  "startTime" : 0,
"timeSpace" : 15,  "totalActiveTime" : 81,  "totalCalory" : 0,  "totalDistance" : 0,  "StepCount" : 0,  "year" : 2018 }  
[2018-12-10 06:30:44]同步运动健康数据items.sise()=96 
[2018-12-10 06:30:38]..再同步健康数据... 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-20 18:23:19

你可以改变你的判决,

代码语言:javascript
复制
json:.+?(?=\[2)

到,

代码语言:javascript
复制
(?s)json:(?!.*json:.*totalCount.*).*?totalCount.*?(?=\[2)

要实现json,只需匹配其中包含totalCount的json。

这种负的前瞻性(?!.*json:)确保在它看到字符串中的另一个json:时就放弃了以前的json:匹配,因此它开始与最近的json:而不是第一个json:进行匹配。

演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53873971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档