fork(2) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.util.regex.*;
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. 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}";
  13. Pattern ptrn = Pattern.compile("(?<new>network=\\{|(?!^)\\G)\\s*(?<key>\\w+)=\"?(?<value>[^\"\n]+)\"?");
  14. Matcher matcher = ptrn.matcher(str);
  15. int count = 1;
  16. while (matcher.find()) {
  17. if (matcher.group("new") != null && matcher.group("new").length() > 0) {
  18. System.out.println("New Network: " + count);
  19. count += 1;
  20. }
  21. System.out.println(matcher.group("key") + ":\"" + matcher.group("value").trim() + "\"");
  22.  
  23. }
  24. }
  25. }
Success #stdin #stdout 0.11s 320576KB
stdin
Standard input is empty
stdout
New Network: 1
ssid:"test1"
psk:"154695"
key_mgmt:"WPA-PSK"
sim_slot:"-1"
imsi:"none"
priority:"1"
New Network: 2
ssid:"SSID2"
psk:"test123456"
key_mgmt:"WPA-PSK"
sim_slot:"-1"
imsi:"none"
priority:"19"