Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式提取器Jmeter_Javascript_Regex_Jmeter - Fatal编程技术网

Javascript 正则表达式提取器Jmeter

Javascript 正则表达式提取器Jmeter,javascript,regex,jmeter,Javascript,Regex,Jmeter,您好,我正在尝试从下面提到的JSON响应中提取令牌(仅令牌值,不需要前缀或后缀) 使用的常规ex是:“令牌”:“(.*?” 但下面是使用reg ex后返回的值 "token":"eyJpZCI6IjgzNjg4IiwiZXhwIjoxNDYzMDQ2NDg3LCJzdWIiOiJhdXRoTmF1dGhvcjJAaGlkZ2xvYmFsLmNvbSIsImV4dGVybmFsaWQiOiJhdXRoTmF1dGhvcjJAaGlkZ2xvYmFsLmNvbSIsInJvbGVzIjpbIkhJR

您好,我正在尝试从下面提到的JSON响应中提取令牌(仅令牌值,不需要前缀或后缀)

使用的常规ex是:
“令牌”:“(.*?”

但下面是使用reg ex后返回的值

"token":"eyJpZCI6IjgzNjg4IiwiZXhwIjoxNDYzMDQ2NDg3LCJzdWIiOiJhdXRoTmF1dGhvcjJAaGlkZ2xvYmFsLmNvbSIsImV4dGVybmFsaWQiOiJhdXRoTmF1dGhvcjJAaGlkZ2xvYmFsLmNvbSIsInJvbGVzIjpbIkhJRFN5c0FkbWluIl0sImF1ZCI6InN5c1JNMyIsImlzcyI6Imh0dHBzOlwvXC91c2Jvc3MtdHN0NHRyZXNzOjQ0M1wvYWMuNHRyZXNzLnNhbWxpZHBcL1NJU0RPTUFJTlwvYXV0aG4iLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhdXRoTmF1dGhvcjJAaGlkZ2xvYmFsLmNvbSIsImlhdCI6MTQ2Mjk2MDA4NywiZ3JvdXBpZHMiOlsiMTAwMCJdfQasddds12"
但我不希望
标记“
和最后一个
被返回。

请帮助我编写符合我标准的正则表达式

实际JSON响应

{  
   "statusCode":200,
   "result":{  
      "list":[  
         {  
            "provider":"openID",
            "token":"eyJpZCI6IjgzNjg4IiwiZXhwIjoxNDYzMDQ2NDg3LCJzdWIiOiJhdXRoTmF1dGhvcjJAaGlkZ2xvYmFsLmNvbSIsImV4dGVybmFsaWQiOiJhdXRoTmF1dGhvcjJAaGlkZ2xvYmFsLmNvbSIsInJvbGVzIjpbIkhJRFN5c0FkbWluIl0sImF1ZCI6InN5c1JNMyIsImlzcyI6Imh0dHBzOlwvXC91c2Jvc3MtdHN0NHRyZXNzOjQ0M1wvYWMuNHRyZXNzLnNhbWxpZHBcL1NJU0RPTUFJTlwvYXV0aG4iLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhdXRoTmF1dGhvcjJAaGlkZ2xvYmFsLmNvbSIsImlhdCI6MTQ2Mjk2MDA4NywiZ3JvdXBpZHMiOlsiMTAwMCJdfQasddds12",
            "username":"authNauthor2@adasd.com",
            "audience":"sysRM3",
            "expires":1463046487,
            "roles":[  
               "asdasd"
            ],
            "groups":[  
               "1000"
            ]
         },
         {  
            "EMAIL":"authNauthor2@asdasd.com",
            "ENDPOINT_ID":null,
            "KEY_AUTHORIZATIONS":"IqweQWQCE-001, asdasd-002",
            "EU_COMPANY_NAME":"asdasdasd"
         }
      ]
   }
}

我想你误解了
匹配
捕获组
之间的区别。让我们稍微简化一下您的数据,只需考虑:

"token":"eyJpZCI6IjgzN"
您的模式:
“token”:“(.*”
将匹配整行,而捕获组将捕获括号内的内容(这里,token值:
eyJpZCI6IjgzN

您需要获得捕获组的价值:

var re=/“令牌”:“(.*”/;
var str='{\n“statusCode”:200,\n“result”:{\n“list”:[\n{\n“provider”:“openID”,\n“token”:"2、2、2、YMMF2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、KZ2XVYMFSLMNVBISIMLHDCI6MTQ2MJK2MDA4 NYWIZ3JVDxBPZHMIOLSIMTAWMCJDFQASDDS12“,\n“用户名”:”authNauthor2@adasd.com“,\n”受众“:“sysRM3”,\n”过期“:1463046487,\n”角色“:[\n”asdasd“\n],\n”组“:[\n”1000”\n]\n},\n{\n“电子邮件”:authNauthor2@asdasd.com“,\n“端点ID”:null、\n“密钥授权”:“IqweQWQCE-001,asdasd-002”、\n“欧盟公司名称”:“asdasdasd”\n}\n]\n}\n}”;
var-m;
如果((m=re.exec(str))!==null){
如果(m.index==re.lastIndex){
re.lastIndex++;
}
document.body.innerHTML+=m[1];

}
查看监听器的RegExp Tester模式:

您的正则表达式有效,因此只需在正则表达式提取器中使用
$1$
作为模板。完整配置:

  • 参考名称:任何有意义的内容,即
    标记
  • 正则表达式:
    “令牌”:“(.*?”
  • 模板:
    $1$
如果需要,请将提取的值引用为
${token}

您可以使用以下方法检查提取的变量值:


为了处理JSON数据,可以更容易地使用available via,当涉及到条件选择(如“提取电子邮件所在的令牌”)时,它非常方便authNauthor2@asdasd.com"

相关的JSON路径表达式将像
$…令牌[0]
一样简单

见:

  • 有关概述和语法参考
  • 对于所涵盖的某些场景

发生了什么问题?我完全可以使用()。