我想提取JAVA中双引号之间的所有值
示例字符串:
i am a sample string. "name":"Alfred","age":"95","boss":"Batman" end of sample
最终结果应该是一个数组:[姓名,阿尔弗雷德,年龄,95岁,老板,蝙蝠侠]
*实际字符串将包含""
之间未知数量的值答案 0 :(得分:2)
声明一个数组,然后将匹配结果存储到该数组中。 ([^\"]*)
会捕获"
零次或多次的任何字符。 ()
称为捕获组,用于捕获与该组内存在的模式匹配的字符。稍后我们可以通过反向引用来引用这些捕获的角色。
String s = "i am a sample string. \"name\":\"Alfred\",\"age\":\"95\",\"boss\":\"Batman\" end of sample";
Pattern regex = Pattern.compile("\"([^\"]*)\"");
ArrayList<String> allMatches = new ArrayList<String>();
Matcher matcher = regex.matcher(s);
while(matcher.find()){
allMatches.add(matcher.group(1));
}
System.out.println(allMatches);
输出:
[name, Alfred, age, 95, boss, Batman]