无法获取第一个捕获组 - 匹配器find()显示为空

时间:2018-05-24 19:00:59

标签: java regex

String response = "{\"phone\":[{\"firstName\":\"sandeepan\",\"lastName\":\"\"}]}";
System.out.println("response "+response);
        Pattern ps = Pattern.compile("/\\{\"\\.\\*\"firstName\":\"([a-z]*)\"\\.\\*/");
        Matcher m = ps.matcher(response);
        while(m.find()) {
            System.out.println("matched "+m.group());
        }
        System.out.println("After matching block");

输出:

response {"phone":[{"firstName":"sandeepan","lastName":""}]}
After matching block

正则表达式正在运行 - https://regex101.com/r/L2vZ9J/1/

为什么我们使用正则表达式而不是json解析:

  • 针对给定电话号码的响应中可能存在多组数据,我们可以抓住第一组数据。
  • 第一个属性中有一个值(" phone"是一个值,而不是一个键,所以需要将它建模为一个类,看起来是正确的。)

这只是一次性任务,所以我们需要快速完成任务 - 实施时间不多。

0 个答案:

没有答案