10

これまで正規表現を使用したことがなく、1つ以上のJSONオブジェクトを含むファイルを分割しようとしています。JSONオブジェクトはコンマで区切られていません。したがって、それらを「} {」に分割し、両方の中括弧を保持する必要があります。文字列は次のようになります。

{id:"123",name:"myName"}{id:"456",name:"anotherName"}

使用するような文字列配列が欲しいstring.split()

["{id:"123",name:"myName"}", "{"id:"456",name:"anotherName"}"]
4

1 に答える 1

15

オブジェクトが表示内容よりも複雑でない場合は、次のようなルックアラウンドを使用できます。

String[] strs = str.split("(?<=\\})(?=\\{)");

例:

String str = "{id:\"123\",name:\"myName\"}{id:\"456\",name:\"yetanotherName\"}{id:\"456\",name:\"anotherName\"}";
String[] strs = str.split("(?<=\\})(?=\\{)");
for (String s : strs) {
    System.out.println(s);          
}

プリント

{id:"123",name:"myName"}
{id:"456",name:"anotherName"}
{id:"456",name:"yetanotherName"}

オブジェクトがより複雑な場合、正規表現はおそらく機能せず、文字列を解析する必要があります。

于 2012-11-14T17:59:05.300 に答える