Извлечение идентификаторов JSON с помощью API Java Regex / Matcher

Несколько лучше, избегая возможных последствий для использования с помощью eval, является

declare $var="$val"

. Обратите внимание, что declare является синонимом typeset в bash. Команда typeset более широко поддерживается (ksh и zsh также используют ее):

typeset $var="$val"
-1
задан hotmeatballsoup 17 January 2019 в 01:57
поделиться

1 ответ

Вы можете попробовать это:

Pattern pattern = Pattern.compile("\"_id\"\\s*:\\s*\"(.*?)\"");
Matcher matcher = pattern.matcher(json);
List<String> ids = new ArrayList<>();

while(matcher.find()) {
    ids.add(matcher.group(1));
}

Объяснение -

\"_id\" проверяет предыдущий раздел "_id",
\\s*:\\s* проверяет ноль или больше пробелов, двоеточие : и снова ноль или больше пробелов (возможно, я мог бы пропустить часть пробелов, но я не знаком с JSON, поэтому я не знал, может ли быть несколько пробелов или нет) [1110 ]
\"(.*?)\" создает группу 1 , которая содержит нужный идентификатор, заключенный в "" (если вы хотите использовать двойные кавычки в вашем массиве, используйте регулярное выражение \"_id\"\\s*:\\s*(.*?))
[ 1111]

Наконец, когда мы находим совпадение с регулярным выражением, мы добавляем содержимое группы 1 в ArrayList, используя matcher.group(1)

0
ответ дан Robo Mop 17 January 2019 в 01:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: