提取包含多个双引号JAVA的子字符串

时间:2014-12-02 04:50:28

标签: java regex

我想提取JAVA中双引号之间的所有值

示例字符串:

i am a sample string. "name":"Alfred","age":"95","boss":"Batman" end of sample

最终结果应该是一个数组:[姓名,阿尔弗雷德,年龄,95岁,老板,蝙蝠侠]

*实际字符串将包含""

之间未知数量的值

1 个答案:

答案 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]