- Matcher mb = Pattern.compile("\"(.+?)\":(\\[(.*?)\\]|\"?(.*?)\"?)[,}]").matcher(ma.group(1));\r
- while ( mb.find() ) {\r
- if ( mb.group(1).equals("start") && mb.group(2) != null ) {\r
- GregorianCalendar c = new GregorianCalendar();\r
- c.setTimeInMillis(Long.valueOf(mb.group(2).replaceFirst("\\.\\d+$", ""))*1000L);\r
- pdl.accurateDate = CommonUtils.getDate(c);\r
- pdl.startDateTime = CommonUtils.getDateTime(c); \r
- pdl.start = CommonUtils.getTime(c).replaceFirst("^.+ ", "");\r
- }\r
- else if ( mb.group(1).equals("end") && mb.group(2) != null ) {\r
- GregorianCalendar c = new GregorianCalendar();\r
- c.setTimeInMillis(Long.valueOf(mb.group(2).replaceFirst("\\.\\d+$", ""))*1000L);\r
- pdl.endDateTime = CommonUtils.getDateTime(c); \r
- pdl.end = CommonUtils.getTime(c).replaceFirst("^.+ ", "");\r
- }\r
- else if ( mb.group(1).equals("title") && mb.group(4) != null ) {\r
- pdl.title = mb.group(4).replace("\\\"", "\"");\r
- }\r
- else if ( mb.group(1).equals("episode_title") && mb.group(4) != null ) {\r
- subtitle = mb.group(4);\r
- }\r
- else if ( mb.group(1).equals("explanation") && mb.group(4) != null ) {\r
- pdl.detail = mb.group(4).replace("\\\"", "\"").replace("\\n", "\n");\r
- }\r
- else if ( mb.group(1).equals("person") && mb.group(3) != null ) {\r
- String[] d = mb.group(3).split(",");\r
- for ( String s : d ) {\r
- Matcher mc = Pattern.compile("\"(.+?)\"").matcher(s);\r
- if ( mc.find() ) {\r
- person += "、"+mc.group(1);\r
- }\r
+ \r
+ for ( String[] k : keys ) {\r
+ Matcher mb = Pattern.compile("<span\\s+"+k[0]+"=\""+k[1]+"\"[^>]*?>\\s*(.+?)\\s*</span>",Pattern.DOTALL).matcher(ma.group(1));\r
+ while ( mb.find() ) {\r
+ if ( mb.group(1) == null ) {\r
+ continue;\r