簡體   English   中英

使用Java正則表達式提取鍵值對

[英]Extract key-value pairs using a Java regex

我有一個具有以下格式的字符串: <element>Key:Value</element>

相似的字符串會相互附加以創建復合字符串,因此,如果有三個字符串,則應具有以下格式: <element>Key:Value</element><element>Key:Value</element><element>Key:Value</element>

兩個元素之間沒有字符。

我想編寫一個正則表達式,以便提取鍵值對並將其放入HashMap中。 映射部分很容易,但是我不知道如何做正則表達式部分。

是的,如上所述,XML解析器在這里可能更合適,但是如果您想使用正則表達式:

    String str = "<element>Key1:Value1</element><element>Key2:Value2</element><element>Key2:Value2</element>";
    final Pattern p = Pattern.compile("<element>(.*?):(.*?)</element>");

    Matcher m = p.matcher(str);
    while (m.find()) {
        System.out.print("Key=" + m.group(1));
        System.out.println("; Value=" + m.group(2));
    }

不要使用regexp進行操作,使用真正的XML解析器並提取元素erm元素的內容,然后使用regexp或簡單的string.split(“:”)

喜歡,

List<XMLElements> els = XMLParser.parse(yourXmlFile); 
then for each XMLElement is element in els element.split(":") and take [0] for key and [1] for value.

暫無
暫無

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

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