import java.util.*;
import java.lang.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Main
{
{
String str
= "Message:id1:[label1:label2:labelN]:id2:[label1:label2:labelM]:id3:[label1:label2:labelK]"; Pattern p = Pattern.compile("([^:]+):\\[([^\\]]+)\\]");
Matcher m = p.matcher(str.substring(8));
Map
<String, List
<String
>> idmap
= new HashMap
<String, List
<String
>>(); while (m.find()) {
List<String> l = new ArrayList<String>();
String[] tok
= m.
group(2).
split(":"); l.add(t);
idmap.put(m.group(1), l);
}
System.
out.
printf("IdMap %s%n", idmap
); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKY2xhc3MgTWFpbgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKICAgICAgICBTdHJpbmcgc3RyID0gIk1lc3NhZ2U6aWQxOltsYWJlbDE6bGFiZWwyOmxhYmVsTl06aWQyOltsYWJlbDE6bGFiZWwyOmxhYmVsTV06aWQzOltsYWJlbDE6bGFiZWwyOmxhYmVsS10iOwogICAgUGF0dGVybiBwID0gUGF0dGVybi5jb21waWxlKCIoW146XSspOlxcWyhbXlxcXV0rKVxcXSIpOwogICAgTWF0Y2hlciBtID0gcC5tYXRjaGVyKHN0ci5zdWJzdHJpbmcoOCkpOwogICAgTWFwPFN0cmluZywgTGlzdDxTdHJpbmc+PiBpZG1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgTGlzdDxTdHJpbmc+PigpOyAKICAgIHdoaWxlIChtLmZpbmQoKSkgewogICAgICAgIExpc3Q8U3RyaW5nPiBsID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7CiAgICAJU3RyaW5nW10gdG9rID0gbS5ncm91cCgyKS5zcGxpdCgiOiIpOwogICAgCWZvciAoU3RyaW5nIHQ6IHRvaykKICAgIAkJbC5hZGQodCk7CiAgICAJaWRtYXAucHV0KG0uZ3JvdXAoMSksIGwpOwogICAgfQogICAgU3lzdGVtLm91dC5wcmludGYoIklkTWFwICVzJW4iLCBpZG1hcCk7CQkKCX0KfQ==
IdMap {id2=[label1, label2, labelM], id1=[label1, label2, labelN], id3=[label1, label2, labelK]}