REGEX区分内部匹配和外部匹配

时间:2015-08-14 15:27:15

标签: json regex

我正在使用REGEX处理表示对象的复杂JSON,每个对象由UUID表示。问题是匹配每个单独对象的REGEX也匹配更大的模式。举个例子,如下:

{_id:"(UUID)" value:"x"}(additional info here),{_id:"(UUID)" value:"y"}(additional info here)

现在,如果我使用/{_id:"(.+?)".+value:"(.+?)"}/g之类的模式来获取每个模式的ID和值,而不是单独匹配每个模式,那么它是否与较大的模式不匹配,即第一个id和最后一个值?

确保每个组被单独拉出的最佳方法是什么,而不是更大的模式也匹配?

2 个答案:

答案 0 :(得分:1)

正则表达式/{_id:"(.+?)".+value:"(.+?)"}/g

的问题

.+应为.+?

所以现在的正则表达式是:

{_id:"(.+?)".+?value:"(.+?)"}/g

https://regex101.com/r/xK0qJ8/2

答案 1 :(得分:1)

我能够弄明白,我没有使用非贪婪的“?”正确。我能够通过以下方式单独获得每个:

/{_id:"(.+?)".+?value:"(.+?)"}/g