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