为什么以下是正则表达式:
"_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是可变的,而不是(。+?)
答案 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”) - 它比正则表达式简单得多,不那么脆弱且更易于阅读