特定字词和特殊字符后的正则表达式

时间:2019-11-28 16:08:12

标签: regex

我有一个这样的字符串:

{"success":true,"result":[{"firstname":"Mark","lastname":"White","birthday":"1976-11-12","id":"12x1288"}]}

有人可以用正则表达式帮助我在特定字段后找到匹配的值吗?

例如在姓氏后面”:我知道该值将在下一个双引号之间。它可以是两个单词,也可以是空,但始终在双引号之间。

谢谢!

1 个答案:

答案 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));

打印:

  

白色

它看起来很复杂,但这仅仅是因为我必须转义所有双引号字符。我匹配字段值周围的引号字符,然后在捕获组中匹配零个或多个不是引号的字符。这些代表价值。