我有以下字符串
{ "access_token": "1234-1234-1234-1234-1234", "expires_in": 9998, "refresh_token": "abc-abc-abc-1234", "token_type": "test"}
我只想获取access_token值(1234-1234-1234-1234-1234)。 我尝试过创建这样的子字符串,并且它有效
String s2 = result.substring(20,57);
我遇到的问题是“access_token”并不总是在字符串中首先列出,并且该值并不总是相同的长度。有没有办法确保始终使用正则表达式获取该值?
我没有太多使用正则表达式,所以这就是我陷入困境的地方。我尝试了以下方法,但它选择了太多。
(?i)"access_token":\s\S(.*)",
最佳答案
差不多了,只需通过捕获组获取 access_token 旁边的数据即可。
Matcher m = Pattern.compile("(?i)\"access_token\":\s*\"([^\"]*)\"").matcher(s);
if(m.find()) {
System.out.println(m.group(1));
}
关于java - 如何使用正则表达式获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32753961/