【发布时间】:2019-08-21 19:37:29
【问题描述】:
我正在尝试根据某些键分离某个字符串并将它们添加到键值对中的映射中。按键可以改变位置。我是 regex 的新手,需要一些帮助来完成它。
我有一个字符串"key1=valueforkey1&key2=valueforkey2"。此字符串也可以更改为"key2=valueforkey2&key1=valueforkey1"。
我的正则表达式适用于上述情况并正确分离键和值。
当值在键前包含“=”时,它不起作用。
例如
"key1=valueforkey1=&key2=valueforkey2"
或
"key1=valueforkey1==&key2=valueforkey2".
我的地图将包含
map("key1", "valueforkey1")
和
map("key2", "valueforkey2")
而不是
map("key1", "valueforkey1==")
map("key2", "valueforkey2")
String delimiter = "[= & ?]+";
String[] split = text.split(delimiter );
for (int i=0; i<split.length; i+=2) {
maps.put(split[i], split[i+1]);
}
我希望分离字符串并将它们添加到映射中的键值对中。
map("key1", "valueforkey1") or
map("key1", "valueforkey1=") or
map("key1", "valueforkey1==")
和
map("key2", "valueforkey2") or
map("key2", "valueforkey2=") or
map("key2", "valueforkey2==")
【问题讨论】: