我正在使用REGEX处理表示对象的复杂JSON,每个对象由UUID表示。问题是匹配每个单独对象的REGEX也匹配更大的模式。举个例子,如下:
{_id:"(UUID)" value:"x"}(additional info here),{_id:"(UUID)" value:"y"}(additional info here)
现在,如果我使用/{_id:"(.+?)".+value:"(.+?)"}/g
之类的模式来获取每个模式的ID和值,而不是单独匹配每个模式,那么它是否与较大的模式不匹配,即第一个id和最后一个值?
确保每个组被单独拉出的最佳方法是什么,而不是更大的模式也匹配?
答案 0 :(得分:1)
正则表达式/{_id:"(.+?)".+value:"(.+?)"}/g
.+
应为.+?
所以现在的正则表达式是:
{_id:"(.+?)".+?value:"(.+?)"}/g
答案 1 :(得分:1)
我能够弄明白,我没有使用非贪婪的“?”正确。我能够通过以下方式单独获得每个:
/{_id:"(.+?)".+?value:"(.+?)"}/g