java - 使用 Java 正则表达式提取键值对

标签 java regex hashmap

我有一个格式如下的字符串:<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));
    }

关于java - 使用 Java 正则表达式提取键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9708093/

相关文章:

java - 在 JSP 中打印 HashMap

具有约1亿个键的HashMap,仍保持不变的时间吗?

java - 将Python转换为Java并面临一些问题

java - Spring 和混合 SQL 和 NoSQL 数据库

java - 我们可以在没有循环语句的情况下计算字符串中的数字表达式(通过正则表达式)吗?

java - 如何从 Access 附件字段中提取图像并将其放入 JLabel 中

c++ - gcc 4.8 或更早版本对正则表达式有问题吗?

javascript - Javascript 中的方括号正则表达式

java - 将全局变量 Hook 到 JSP (Spring) 中最优雅的方法是什么

java - Spring WS AbstractJDomPayloadEndpoint 弃用警告