我有这样的字符串:
fields {
key: "ristorante"
value {
string_value: ""
}
}
fields {
key: "type"
value {
list_value {
values {
string_value: "pizza"
}
}
}
}
而且我只需要提取类型的string_value,在这种情况下,是单词pizza。
如何用Java做到这一点?
我不想要这种特定情况的答案,我只想知道如何从字符串中提取文本,或者是否更好地将其解析为JSON,以及如何实现。
Pattern pattern = Pattern.compile("values[^s]+?string_value\\s?:\\s?\"(.*?)(?<!\\\\)\"");
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
String value = matcher.group(1);
System.out.println(value);
}
如果您确实只想获得“披萨”值,请使用此正则表达式
如果要获取所有“ string_value”条目,请使用
"string_value\\s?:\\s?\"(.*?)(?<!\\\\)\""
作为正则表达式模式。然后,您会发现多次出现,因此请使用while循环而不是if(matcher.find)
(正则表达式可能比用JsonParser解析它快一点)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句