/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String str
= "ctrl_interface=/data/misc/wifi/sockets\r\ndriver_param=use_p2p_group_interface=1\r\nupdate_config=1\r\ndevice_name=P580_ROW\r\nmanufacturer=LENOVO\r\nmodel_name=Lenovo \r\nmodel_number=Lenov\r\nserial_number=hjhjh7\r\ndevice_type=10-0050F204-5\r\nos_version=01020300\r\nconfig_methods=physical_display virtual_push_button\r\np2p_no_group_iface=1\r\n\r\nnetwork={\r\n ssid=\"test1\"\r\n psk=\"154695\"\r\n key_mgmt=WPA-PSK\r\n sim_slot=\"-1\"\r\n imsi=\"none\"\r\n priority=1\r\n}\r\n\r\nnetwork={\r\n ssid=\"SSID2\"\r\n psk=\"test123456\"\r\n key_mgmt=WPA-PSK\r\n sim_slot=\"-1\"\r\n imsi=\"none\"\r\n priority=19\r\n}"; Pattern ptrn = Pattern.compile("(?<new>network=\\{|(?!^)\\G)\\s*(?<key>\\w+)=\"?(?<value>[^\"\n]+)\"?");
Matcher matcher = ptrn.matcher(str);
int count = 1;
while (matcher.find()) {
if (matcher.group("new") != null && matcher.group("new").length() > 0) {
System.
out.
println("New Network: " + count
); count += 1;
}
System.
out.
println(matcher.
group("key") + ":\"" + matcher.
group("value").
trim() + "\"");
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguKjsKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgc3RyID0gImN0cmxfaW50ZXJmYWNlPS9kYXRhL21pc2Mvd2lmaS9zb2NrZXRzXHJcbmRyaXZlcl9wYXJhbT11c2VfcDJwX2dyb3VwX2ludGVyZmFjZT0xXHJcbnVwZGF0ZV9jb25maWc9MVxyXG5kZXZpY2VfbmFtZT1QNTgwX1JPV1xyXG5tYW51ZmFjdHVyZXI9TEVOT1ZPXHJcbm1vZGVsX25hbWU9TGVub3ZvIFxyXG5tb2RlbF9udW1iZXI9TGVub3Zcclxuc2VyaWFsX251bWJlcj1oamhqaDdcclxuZGV2aWNlX3R5cGU9MTAtMDA1MEYyMDQtNVxyXG5vc192ZXJzaW9uPTAxMDIwMzAwXHJcbmNvbmZpZ19tZXRob2RzPXBoeXNpY2FsX2Rpc3BsYXkgdmlydHVhbF9wdXNoX2J1dHRvblxyXG5wMnBfbm9fZ3JvdXBfaWZhY2U9MVxyXG5cclxubmV0d29yaz17XHJcbiAgICBzc2lkPVwidGVzdDFcIlxyXG4gICAgcHNrPVwiMTU0Njk1XCJcclxuICAgIGtleV9tZ210PVdQQS1QU0tcclxuICAgIHNpbV9zbG90PVwiLTFcIlxyXG4gICAgaW1zaT1cIm5vbmVcIlxyXG4gICAgcHJpb3JpdHk9MVxyXG59XHJcblxyXG5uZXR3b3JrPXtcclxuICAgIHNzaWQ9XCJTU0lEMlwiXHJcbiAgICBwc2s9XCJ0ZXN0MTIzNDU2XCJcclxuICAgIGtleV9tZ210PVdQQS1QU0tcclxuICAgIHNpbV9zbG90PVwiLTFcIlxyXG4gICAgaW1zaT1cIm5vbmVcIlxyXG4gICAgcHJpb3JpdHk9MTlcclxufSI7CiAgICAJUGF0dGVybiBwdHJuID0gUGF0dGVybi5jb21waWxlKCIoPzxuZXc+bmV0d29yaz1cXHt8KD8hXilcXEcpXFxzKig/PGtleT5cXHcrKT1cIj8oPzx2YWx1ZT5bXlwiXG5dKylcIj8iKTsKICAgIAlNYXRjaGVyIG1hdGNoZXIgPSBwdHJuLm1hdGNoZXIoc3RyKTsKICAgIAlpbnQgY291bnQgPSAxOwogICAgCXdoaWxlIChtYXRjaGVyLmZpbmQoKSkgewogICAgCQlpZiAobWF0Y2hlci5ncm91cCgibmV3IikgIT0gbnVsbCAmJiBtYXRjaGVyLmdyb3VwKCJuZXciKS5sZW5ndGgoKSA+IDApIHsKICAgIAkJCVN5c3RlbS5vdXQucHJpbnRsbigiTmV3IE5ldHdvcms6ICIgKyBjb3VudCk7CiAgICAJCQljb3VudCArPSAxOwogICAgCQl9CiAgICAJCVN5c3RlbS5vdXQucHJpbnRsbihtYXRjaGVyLmdyb3VwKCJrZXkiKSArICI6XCIiICsgbWF0Y2hlci5ncm91cCgidmFsdWUiKS50cmltKCkgKyAiXCIiKTsKICAgIAkJCiAgICAJfQoJfQp9