令人困惑的RegEx结果

时间:2015-08-15 04:58:31

标签: json regex

为什么以下是正则表达式:

"_id":"(.+?)"}\],"componentType":"(.+?)"

这个字符串:

"name":"in","_id":"a05d91a7-6be0-c252-08e9-bf94cc0be36e","value":"5.6"}],"_id":"e986915c-22db-429f-9fe7-ae2e2ddfa779","refId":"de9ff045-21ce-4833-af34-30f50c129840","failId":"8b723736-a391-fd7e-8d23-7cc72e568f48"},{"outputs":[{"metadata":{"label":{"value":"Output Integer","capco":"U"},"desc":{"value":"Output
Integer.","capco":"U"}},"name":"f7018f5c-057c-6ab9-7300-875c712b87b7","_id":"daad7ae7-356b-57ca-037e-0c4bcb307201"}],"componentType":"model","metadata":{"signature":"ab7e00a928dc79af806b828e1831a95e","zOrder":1,"label":{"lang":"en","value":"BBBBBBBBBBB","capco":"U"},"geom":{"w":150,"x":203,"h":60,"y":324}

将所有内容从a05d91a7 UUID拉到底部的componentType,而不是从底部的_id拉出来?我(据我所知)没有任何表明在id(。+?)模式和componentType模式之间引入额外内容的东西?

我要特别提到的是:

"_id":"daad7ae7-356b-57ca-037e-0c4bcb307201"}],"componentType":"model"

要清楚,UUID是可变的,而不是(。+?)

2 个答案:

答案 0 :(得分:1)

"_id":"([^"]*)"}],"componentType":"(.+?)"

使用此功能。参见演示。

https://regex101.com/r/uF4oY4/38

正则表达式的问题.*?可以根据需要提前匹配的条件进行扩展。当您使用[^"]*基于否定的方法并且不能超过"时无论如何。

答案 1 :(得分:0)

有一个专门的JMeter测试元素 - JSON Path Extractor,它为JMeter添加了JSON支持。

有关插件安装和一些JSONPath语言参考的详细信息,请参阅Using the XPath Extractor in JMeter(向下滚动到“解析JSON”) - 它比正则表达式简单得多,不那么脆弱且更易于阅读

相关问题