簡體   English   中英

Java字符串解析,包括換行符和正則表達式

[英]Java String parsing including line break and regular expression

我正在解析具有值的文件

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元素的大括號-“}”。

我期望的輸出是->鍵“ val1”數據“ 10”和鍵“ val2”數據“ 20”,用於前兩個kv記錄(包含4個子字符串的字符串)和最后一個->鍵“ val3”。

嘗試使用\\s+key.+\\s.+

在這里演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM