2016-04-07 16 views
0

我解析有文件值Java的字符串分析,包括断线之后,正则表达式

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); 
     } 
    } 

上面的代码是精细采摘所有具有价值的“钥匙”行,但在某些情况下,我得到的数据也有“数据”元素如前两个记录中所示。想知道我应该将什么正则表达式传递给Pattern.compile方法,该方法将数据直到结束花括号 - “}”作为kv元素。对于前两个kv记录(包含4个子字符串的字符串)和最后一个 - >键“val3”和“val3”数据“20”和键“val2”数据“20” “ 只要。

+0

可以写你预期的输出试试? – apgp88

+0

嗨,它将像 - >键“val2” 前两个kv记录(包含4个子字符串的字符串)和最后一个 - >键“val3”的数据“20”。 – Ammad

回答

相关问题