Невозможно получить первую группу захвата - Matcher find () показывает пустой - PullRequest
0 голосов
/ 24 мая 2018
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:

  • Может быть несколько наборов данных в ответе на данный номер телефона, и мы в порядке с захватом первого.
  • В первом атрибуте есть значение («телефон» - это значение, а не ключ, поэтому, по-видимому, нужно смоделировать его как класс, чтобы сделать это правильно.)

Это всего лишь разовая задача, поэтому нам нужно выполнить ее быстро - времени на ее реализацию не так много.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...