Я пытаюсь использовать это мульти-регулярное выражение java библиотека для извлечения JSON значения поля из строки.
My JSON выглядит так:
{
"field1": "something",
"field2": 13
"field3": "some"
}
Я создал шаблон регулярного выражения для каждого поля, и он работает с Java Шаблон регулярного выражения, просто делая что-то подобное для каждого шаблона:
Matcher matcher = patternToSearch.matcher(receiveData);
if (matcher.find()) {
return matcher.group(1);
}
Я решил попробовать и улучшить код и использовать многократное регулярное выражение, поэтому вместо сканирования строки 3 раза он будет сканировать ее только один раз и извлекать все необходимые значения.
Итак, я придумал что-то вроде этого:
String[] patterns = new String[]{
"\"field1\":\\s*\"(.*?)\"",
"\"field2\":\\s*(\\d+)(\\.\\d)?",
"\"field3\":\\s*\"(.*?)\"",
};
this.matcher = MultiPattern.of(patterns).matcher();
у matcher
есть только один метод - match
- используемый следующим образом:
int[] match = this.matcher.match(jsonStringToScan);
, поэтому я получил список целых чисел, но понятия не имею, как получить json значения из этих строк и как эти целые числа помогают мне. Multi regex matcher
не поддерживает метод group
, который я использовал ранее для получения значения.
Есть идеи, как извлечь несколько значений json из строки, используя multi regex? (Сканирование строки только один раз)