Java String解析包括换行符和正则表达式

时间:2016-04-07 23:44:05

标签: java regex parsing

我正在解析具有值

的文件
kv {
  key "val1" 
  data "10"
}
kv {
  key "val2"
  data "20"
}
kv {
  key "val3"
}


Pattern p = Pattern.compile("\\s+key.+");

    Scanner sc = new Scanner(new File("kv.txt"));
    while (sc.hasNextLine()) {
        sc.nextLine();
        String line = sc.findInLine(p);

        if (line != null) {
            System.out.println(line);
        }
    }

以上代码正在挑选所有具有价值的行" key"但在某些情况下,我得到的数据也包含数据和数据。元素如前两个记录中所示。想知道我应该将正则表达式传递给Pattern.compile方法,该方法选择数据直到结束括号 - "}" kv元素。

我期待的是 - > key" val1"数据" 10" AND key" val2"数据" 20"对于前两个kv记录(包含4个子串的字符串)和最后一个 - >关键" val3"仅

1 个答案:

答案 0 :(得分:0)

尝试使用 \s+key.+\s.+

Demo here