2017-06-16 5 views
0

私はPattern.compile()を使用して大きな文字列からデータを抽出するためにJavaで必要です。エクストラタデータは、Javaでのパターンマッチングを使用しています

入力文字列:

[{"KEY1" :"VALUE1","KEY2" :"VALUE2","KEY3" :"VALUE3","KEY4" :"VALUE4"},{"KEY1" :"VALUE5","KEY2" :"VALUE6","KEY3" :"VALUE7","KEY4" :"VALUE8"}] 

OUTPUT:私はコードの下にしようとしています2列の セット

first : {"KEY1" :"VALUE1","KEY2" :"VALUE2","KEY3" :"VALUE3","KEY4" :"VALUE4"} 
second : {"KEY1" :"VALUE5","KEY2" :"VALUE6","KEY3" :"VALUE7","KEY4" :"VALUE8"} 

:私が正しくあなたを理解している場合

 ArrayList<String> token_data = new ArrayList<String>(); 

    String myString = "[{"KEY1" :"VALUE1","KEY2" :"VALUE2","KEY3" :"VALUE3","KEY4" :"VALUE4"},{"KEY1" :"VALUE5","KEY2" :"VALUE6","KEY3" :"VALUE7","KEY4" :"VALUE8"}]" 
     System.out.println(myString); 
     Pattern p1 = Pattern.compile("\"([^\"]+)\""); 
     Matcher m = p1.matcher(myString); 

     while(m.find()) 
     { 

      System.out.println(m.group(1)); 
      //m.group(1); 
      token_data.add(m.group(1)); 
     } 
+0

結果は何ですか?コード上 – solomkinmv

+0

@solomkinmv は、以下のように、O/Pを与える: KEY1 VALUE1 KEY2 VALUE2を。 。 。 同様に、VALUE8まで – Amar

+0

@ YCF_L質問を正しく編集していただきありがとうございます。 – Amar

答えて

1

は、ここにあります正規表現:{(.*)}。注意してください、それをungreedyとしてマークする必要があります。

正規表現のデモ:https://regex101.com/r/x6ZX56/2

結果:

全試合:{"KEY1" :"VALUE1","KEY2" :"VALUE2","KEY3" :"VALUE3","KEY4" :"VALUE4"}

グループ1:"KEY1" :"VALUE1","KEY2" :"VALUE2","KEY3" :"VALUE3","KEY4" :"VALUE4"

全試合:{"KEY1" :"VALUE5","KEY2" :"VALUE6","KEY3" :"VALUE7","KEY4" :"VALUE8"}

グループ1:"KEY1" :"VALUE5","KEY2" :"VALUE6","KEY3" :"VALUE7","KEY4" :"VALUE8"

Javaの例:私は入力文字列のエスケープ文字を使用することを

String input = "[{\"KEY1\" :\"VALUE1\",\"KEY2\" :\"VALUE2\",\"KEY3\" :\"VALUE3\",\"KEY4\" :\"VALUE4\"},{\"KEY1\" :\"VALUE5\",\"KEY2\" :\"VALUE6\",\"KEY3\" :\"VALUE7\",\"KEY4\" :\"VALUE8\"}]"; 

    Pattern pattern = Pattern.compile("\\{(.*?)}"); 

    Matcher m = pattern.matcher(input); 

    while (m.find()) { 
     System.out.println(m.group(1)); 
    } 

注意、。

+0

これは完全に正しいです私は本当に '{}'気づいていない私のUVを持って良いヒント: –

+0

Bingooo !!!! @solomkinmv、それは完璧に働いています。あなたのコードに完全な助けをしてくれてありがとう。 – Amar

関連する問題