'=' と ',' の間の出現を一致させるために正規表現を使用できると思います。プロパティ名、クローズドなどが常にその順序で存在し、'='、',' および '] を含まないことがわかっていると仮定します。 ' を値に含めます。
Pattern p = Pattern.compile("=.*?[,\\]]");
List<String> matches = new ArrayList<String>();
Matcher matcher = p.matcher(value);
while(matcher.find()) {
matches.add(matcher.group(0));
}
com.atlassian.greenhopper.service.sprint.Sprint@719c9e23[name=Sprint 1,closed=true,startDate=2013-04-10T17:58:49.228-07:00,endDate=2013-04-24T17:58:49.228 -07:00,completeDate=2013-04-16T14:42:09.504-07:00,id=10]
サンプルの一致に基づいて、次の文字列が含まれるようになりました。
- name=スプリント 1,
- 閉鎖=真、
- startDate=2013-04-10T17:58:49.228-07:00,
- endDate=2013-04-24T17:58:49.228-07:00,
- completeDate=2013-04-16T14:42:09.504-07:00,
- ID=10]
あなたはここからそれを取ることができると思います。
編集:正規表現が良いアプローチであるかどうかにかかわらず、このデータ形式は次のようなものからの戻り値によく似ています
public String toString() {
return super.toString() + ... ;
}
また、考え直して、この形式を解析する以外に本当に別のオプションがない場合は、プロパティを明示的に照合します。たとえば、名前に正規表現「name=.*?」を使用します。