import java.lang.*;
import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String regex
= "\\G\\|\\|\\h*(.*?)\\h*\\|\\h*(\\[[^\\]\\[]*\\]|.*?)\\h*\\|\\R?"; String string
= "|| Responsible | abc|\n" + "|| Departement | def |\n\n"
+ "|| SystemA Username | ghi |\n"
+ "|| Operation | READ |\n"
+ "|| Page | [Example|http://w...content-available-to-author-only...e.com] |\n\n"
+ "|| SystemB Username | jhk |\n"
+ "|| Operation | WRITE |\n"
+ "|| App | helloWorld |";
Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
for (String s
: string.
split("(?m)^\\s*$")) { Matcher matcher = pattern.matcher(s.trim());
while (matcher.find()) {
m.put(matcher.group(1), matcher.group(2));
}
}
for(Map.
Entry<String, String
> entry
: m.
entrySet()){ System.
out.
println(entry.
getKey() + " --> " + entry.
getValue()); }
}
}
aW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS51dGlsLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKICAgICAgICBIYXNoTWFwPFN0cmluZyxTdHJpbmc+IG0gPSBuZXcgSGFzaE1hcDxTdHJpbmcsU3RyaW5nPigpOwogICAgICAgIFN0cmluZyByZWdleCA9ICJcXEdcXHxcXHxcXGgqKC4qPylcXGgqXFx8XFxoKihcXFtbXlxcXVxcW10qXFxdfC4qPylcXGgqXFx8XFxSPyI7CiAgICAgICAgU3RyaW5nIHN0cmluZyA9ICJ8fCBSZXNwb25zaWJsZSB8IGFiY3xcbiIKICAgICAgICAgICAgICAgICsgInx8IERlcGFydGVtZW50IHwgZGVmIHxcblxuIgogICAgICAgICAgICAgICAgKyAifHwgU3lzdGVtQSBVc2VybmFtZSB8IGdoaSB8XG4iCiAgICAgICAgICAgICAgICArICJ8fCBPcGVyYXRpb24gfCBSRUFEIHxcbiIKICAgICAgICAgICAgICAgICsgInx8IFBhZ2UgfCBbRXhhbXBsZXxodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5jb21dIHxcblxuIgogICAgICAgICAgICAgICAgKyAifHwgU3lzdGVtQiBVc2VybmFtZSB8IGpoayB8XG4iCiAgICAgICAgICAgICAgICArICJ8fCBPcGVyYXRpb24gfCBXUklURSB8XG4iCiAgICAgICAgICAgICAgICArICJ8fCBBcHAgfCBoZWxsb1dvcmxkIHwiOwoKICAgICAgICBQYXR0ZXJuIHBhdHRlcm4gPSBQYXR0ZXJuLmNvbXBpbGUocmVnZXgsIFBhdHRlcm4uTVVMVElMSU5FKTsgICAgICAgCiAgICAgICAgCiAgICAgICAgZm9yIChTdHJpbmcgcyA6IHN0cmluZy5zcGxpdCgiKD9tKV5cXHMqJCIpKSB7CiAgICAgICAgICAgIE1hdGNoZXIgbWF0Y2hlciA9IHBhdHRlcm4ubWF0Y2hlcihzLnRyaW0oKSk7CiAgICAgICAgICAgIHdoaWxlIChtYXRjaGVyLmZpbmQoKSkgewogICAgICAgICAgICAgICAgbS5wdXQobWF0Y2hlci5ncm91cCgxKSwgbWF0Y2hlci5ncm91cCgyKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZm9yKE1hcC5FbnRyeTxTdHJpbmcsIFN0cmluZz4gZW50cnkgOiBtLmVudHJ5U2V0KCkpewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZW50cnkuZ2V0S2V5KCkgKyAiIC0tPiAiICsgZW50cnkuZ2V0VmFsdWUoKSk7CiAgICAgICAgfQoJfQp9