我有一个字符串,格式如下:<element>Key:Value</element>
相似的字符串相互附加以创建复合字符串,因此如果有三个字符串,我将采用以下格式:<element>Key:Value</element><element>Key:Value</element><element>Key:Value</element>
两个元素之间没有字符。
我想写一个正则表达式表达式,这样我就可以提取键值对并将它们放在HashMap中。映射部分很简单,但我不知道如何使用正则表达式部分。
答案 0 :(得分:3)
如上所述,在这里,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));
}
答案 1 :(得分:2)
不要使用regexp,使用真正的XML解析器并提取元素erm元素的内容,并使用正则表达式,或简单的string.split(&#34;:&#34 ;)
喜欢,
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.