我正在解析具有值
的文件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"仅