Нужно регулярное выражение, чтобы получить все между - PullRequest
0 голосов
/ 18 марта 2020

Из этой строки мне нужно получить значение авторизации, но без [\ "и \"]

[\"bla bla bla\"],\"x-user-id\":[\"\"],
\"accept\": [\"application/json, text/javascript, */*; q=0.01\"],
\"original-path\": [\"/test/test\"],
\"authorization\":[\"Bearer dadadadadadadadadadadadadadadadadadadadadadadadadadad\"],
\"requestUrl\":\"/test/test/test\",\"host\":[\"test.com\"]

Я пробовал с \[(.*?)\\], и он возвращает все значения между [].

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Вы можете добавить слово authorization в шаблон, чтобы получить только одно authorization\\":\[\\"(.*?)\\"]

String value = "[\\\"bla bla bla\\\"],\\\"x-user-id\\\":[\\\"\\\"],\\\"accept\\\":[\\\"application/json, text/javascript, /; q=0.01\\\"],\\\"original-path\\\":[\\\"/test/test\\\"],\\\"authorization\\\":[\\\"Bearer dadadadadadadadadadadadadadadadadadadadadadadadadadad\\\"],\\\"requestUrl\\\":\\\"/test/test/test\\\",\\\"host\\\":[\\\"test.com\\\"]";
Pattern p = Pattern.compile("authorization\\\\\":\\[\\\\\"(.*?)\\\\\"]");
Matcher m = p.matcher(value);
if (m.find()) {
    System.out.println(m.group(1)); // Bearer dadadadadadadadadadadadadadadadadadadadadadadadadadad
}
0 голосов
/ 18 марта 2020
/\\"authorization\\":\[\\"(.+?)\\"]/

Это должно сработать, первая группа захвата (ie. Matcher.group(0)) будет содержать значение без пуха вокруг него.

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