如何用正则表达式提取url返回的jason数值

使用Jmeter的正则表达式提取器,提取接口的响应数据,如下:
{"access_token":"a33ae898c0a012d8033cb24df69c786b","token_type":"client_credentials","expires_in":3600,"example_parameter":null}
中的a33ae898c0a012d8033cb24df69c786b,有高手帮忙写一下可以吗?

正则表达式:(?<=\"access_token\":)\"(.+?)\"

取第一捕获组的数据,就行了.

完整的Java程序如下:

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class FFF {

 public static void main(String[] args) {

  String s="{\"access_token\":\"a33ae898c0a012d8033cb24df69c786b\",\"token_type\":\"client_credentials\",\"expires_in\":3600,\"example_parameter\":null}";

  String regex="(?<=\"access_token\":)\"(.+?)\"";

  Pattern p=Pattern.compile(regex);

  Matcher m=p.matcher(s);

  while(m.find()){

   System.out.println(m.group(1));

  }

 }

}

运行结果:
a33ae898c0a012d8033cb24df69c786b

 

其实用json对象解析更简单,完整的Java程序如下:

import org.json.JSONObject;

public class FFF {

 public static void main(String[] args) {

  String s="{\"access_token\":\"a33ae898c0a012d8033cb24df69c786b\",\"token_type\":\"client_credentials\",\"expires_in\":3600,\"example_parameter\":null}";

  JSONObject jsonObj = new JSONObject(s);

  String str=(String) jsonObj.get("access_token");

  System.out.println(str);

 }

}

运行结果:
a33ae898c0a012d8033cb24df69c786b

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-03
Javascript正则表达式/"token-id": "([^\"]*?)"/g 取第一捕获组的数据
我给你一个Javascript语言的例子,你看看吧