我有下面的字符串(一个长字符串)。
{ “类型”: “执行”, “typeValue”: “定制”, “targetValue”: “_自”, “PARAMS”:{ “_报告”: “REPORTNAME”, “hyperlinkInput”: “2”,”组织 “:” ORGID “ ”As_Of_Date“: ”2016年4月1日“}, ”ID“: ”1111“, ”HREF“:” HREF = hyperlinkInput 2安培;组织= ORGID和放大器; As_Of_Date = 2016年4月1日和放大器;语言环境= EN_US “ ”选择器“: ”ExecutionEnd“},{ ”类型“: ”执行“, ”typeValue“: ”定制“, ”targetValue“: ”_自“, ”PARAMS“:{ ”_报告“:” REPORTNAME “ ”hyperlinkInput“: ”2“, ”组织“: ”ORGID“, ”As_Of_Date“: ”2016年4月1日“, ”客户ID“: ”2222“}, ”ID“: ”1234“,” HREF “:” HREF hyperlinkInput = 2及组织= ORGID&安培; As_Of_Date = 2016年4月1日和安培;客户id = 2222&安培;语言环境= EN_US “ ”选择器“: ”ExecutionEnd“},{ ”类型“: ”执行“,” typeValue “:” 自定义 “ ”targetValue“: ”_自我“, ”PARAMS“:{ ”_报告“: ”REPORTNAME“, ”hyperlinkInput“: ”2“, ”组织“: ”ORGID“, ”As_Of_Date“:” 2016- 04-01 “},” ID “:” 1112" , “HREF”: “HREF hyperlinkInput = 2及组织= ORGID&安培; As_Of_Date = 2016年4月1日和安培;语言环境= EN_US”, “选择器”: “ExecutionEnd”} ,{ “类型”: “执行”, “typeValue”: “定制”,“目标值 “:” _自我 “ ”PARAMS“:{ ”_报告“: ”REPORTNAME“, ”hyperlinkInput“: ”2“, ”组织“: ”ORGID“, ”As_Of_Date“: ”2016年4月1日“,” 客户ID “:” 2223 “},” ID “:” 1235" , “HREF”: “HREF hyperlinkInput = 2及组织= ORGID&安培; As_Of_Date = 2016年4月1日和安培;客户id = 22223&安培;语言环境= EN_US”, “选择器” : “ExecutionEnd”},
请注意:
{ “类型”: “执行”, “typeValue”: “定制”, “targetValue”: “_自”, “PARAMS”:{ “_报告”: “REPORTNAME”, “hyperlinkInput”: “2”,”组织 “:” ORGID “ ”As_Of_Date“: ”2016年4月1日“, ”客户ID“: ”2222“}, ”ID“: ”1234“, ”HREF“:” HREF hyperlinkInput = 2及组织= ORGID和放大器; As_Of_Date = 2016年4月1日和安培;客户id = 2222&安培;语言环境= EN_US”, “选择器”: “ExecutionEnd”}
{ “类型”: “执行”, “typeValue”: “定制”, “targetValue”: “_自”, “PARAMS”:{ “_报告”: “REPORTNAME”, “hyperlinkInput”: “2”,”组织 “:” ORGID “ ”As_Of_Date“: ”2016年4月1日“, ”客户ID“: ”2223“}, ”ID“: ”1235“, ”HREF“:” HREF hyperlinkInput = 2及组织= ORGID和放大器; As_Of_Date = 2016年4月1日和安培;客户id = 22223&安培;语言环境= EN_US”, “选择器”: “ExecutionEnd”},
但我不知道该怎么做。我尝试了多次零宽度断言,但仍然无法弄明白。你能开导我吗?谢谢!
答案 0 :(得分:0)
由于所有可能的边缘情况,我不建议使用Regex来解析JSON。但看起来您可以控制数据,因此可以限制边缘情况。
根据您的源文本,此正则表达式将执行以下操作:
CustomerID
数组中的Params
字段的所有JSON条目,并嵌入href
字符串CustomerID
和Params
的{{1}}是否相同注意:运行此正则表达式我使用了Case不敏感标记。
href
要更好地查看图像,请右键单击图像,然后选择在新窗口中打开。
来源文字
\{(?=(?:"[^"]*"|[^{}"]*|\{[^{}]*})*?"params":\{(?:"[^"]*"|[^{}"]*|\{[^{}]*})*?"CustomerID":"([^"]*)")(?=(?:"[^"]*"|[^{}"]*|\{[^{}]*})*?"href":"[^"]*&CustomerID=\1)(?:"[^"]*"|[^{}"]*|\{[^{}]*})*}
<强>匹配强>
{"type":"Execution","typeValue":"Custom","targetValue":"_self","params":{"_report":"reportname","hyperlinkInput":"2","Organization":"orgid","As_Of_Date":"2016-04-01"},"id":"1111","href":"href?hyperlinkInput=2&Organization=orgid&As_Of_Date=2016-04-01&Locale=en_US","selector":"ExecutionEnd"}
,{"type":"Execution","typeValue":"Custom","targetValue":"_self","params":{"_report":"reportname","hyperlinkInput":"2","Organization":"orgid","As_Of_Date":"2016-04-01","CustomerID":"2222"},"id":"1234","href":"href?hyperlinkInput=2&Organization=orgid&As_Of_Date=2016-04-01&CustomerID=2222&Locale=en_US","selector":"ExecutionEnd"},{"type":"Execution","typeValue":"Custom","targetValue":"_self","params":{"_report":"reportname","hyperlinkInput":"2","Organization":"orgid","As_Of_Date":"2016-04-01"},"id":"1112","href":"href?hyperlinkInput=2&Organization=orgid&As_Of_Date=2016-04-01&Locale=en_US","selector":"ExecutionEnd"},{"type":"Execution","typeValue":"Custom","targetValue":"_self","params":{"_report":"reportname","hyperlinkInput":"2","Organization":"orgid","As_Of_Date":"2016-04-01","CustomerID":"2223"},"id":"1235","href":"href?hyperlinkInput=2&Organization=orgid&As_Of_Date=2016-04-01&CustomerID=22223&Locale=en_US","selector":"ExecutionEnd"},
{"type":"Execution","typeValue":"Custom","targetValue":"_self","params":{"_report":"reportname","hyperlinkInput":"2","Organization":"orgid","As_Of_Date":"2016-04-01","CustomerID":"44444"},"id":"1235","href":"href?hyperlinkInput=2&Organization=orgid&As_Of_Date=2016-04-01&CustomerID=44444&Locale=en_US","selector":"ExecutionEnd"},
捕获论坛
[0][0] = {"type":"Execution","typeValue":"Custom","targetValue":"_self","params":{"_report":"reportname","hyperlinkInput":"2","Organization":"orgid","As_Of_Date":"2016-04-01","CustomerID":"2222"},"id":"1234","href":"href?hyperlinkInput=2&Organization=orgid&As_Of_Date=2016-04-01&CustomerID=2222&Locale=en_US","selector":"ExecutionEnd"}
[0][1] = 2222
[1][0] = {"type":"Execution","typeValue":"Custom","targetValue":"_self","params":{"_report":"reportname","hyperlinkInput":"2","Organization":"orgid","As_Of_Date":"2016-04-01","CustomerID":"44444"},"id":"1235","href":"href?hyperlinkInput=2&Organization=orgid&As_Of_Date=2016-04-01&CustomerID=44444&Locale=en_US","selector":"ExecutionEnd"}
[1][1] = 44444
<强>扩展强>
CustomerID