我有一个这样的字符串:
{"success":true,"result":[{"firstname":"Mark","lastname":"White","birthday":"1976-11-12","id":"12x1288"}]}
有人可以用正则表达式帮助我在特定字段后找到匹配的值吗?
例如在姓氏后面”:我知道该值将在下一个双引号之间。它可以是两个单词,也可以是空,但始终在双引号之间。
谢谢!
答案 0 :(得分:0)
使用JSON解析器(例如GSON)可能会更好。但是,要回答您的特定问题,下面的一些代码应该可以为您提供帮助:
String s = "{\"success\":true,\"result\":[{\"firstname\":\"Mark\",\"lastname\":\"White\",\"birthday\":\"1976-11-12\",\"id\":\"12x1288\"}]}";
Pattern pattern = Pattern.compile("lastname\":\"([^\"]*)");
Matcher matcher = pattern.matcher(s);
matcher.find();
System.out.println(matcher.group(1));
打印:
白色
它看起来很复杂,但这仅仅是因为我必须转义所有双引号字符。我匹配字段值周围的引号字符,然后在捕获组中匹配零个或多个不是引号的字符。这些代表价值。