fork download
  1. import java.util.regex.*;
  2. import java.util.*;
  3. import java.lang.*;
  4. import java.io.*;
  5.  
  6. class Ideone
  7. {
  8. public static void main (String[] args) throws java.lang.Exception
  9. {
  10. System.out.println(parseToMap("Artist: foo Title: bar Dimensions: x Framed dimensions: y"));
  11.  
  12. }
  13. public static Map<String, String> parseToMap(String str) {
  14. String DESCRIPTION_DELIMITER = "[Aa]rtist:|[Tt]itle:|[Ff]ramed [Dd]imensions:|[Dd]imensions:";
  15. Map<String, String> itemMap = new LinkedHashMap<>();
  16. Pattern p = Pattern.compile("(" + DESCRIPTION_DELIMITER + ")((?:(?!" + DESCRIPTION_DELIMITER + ").)*)"); //split to key/val pair
  17. Matcher m = p.matcher(str);
  18. while(m.find()) {
  19. itemMap.put(m.group(1).trim(), m.group(2).trim());
  20. }
  21. return itemMap;
  22. }
  23.  
  24. }
Success #stdin #stdout 0.06s 27868KB
stdin
Standard input is empty
stdout
{Artist:=foo, Title:=bar, Dimensions:=x, Framed dimensions:=y}