2017-04-25 25 views
-4

データ自体に含まれるJSONデータに二重引用符を見つける必要があります。文字列内のテキストの検索

例:{「キー」:「値」、「キー1」、「ヴァル」UE1「}

は今ヴァルでの二重引用符」UE1は、他の二重引用符取得していないする必要があります。

どのようにこれを達成するためのアイデアですか?

+0

あなたのJSONは私にとって妥当ではないようです。できるならば、この醜いエスケープ "か、代わりに一重引用符を使用してください。 – Antoine

答えて

-1

二重引用符からデータを抽出するための正規表現は(?<=")[^"]*(?="))です。かっこは、\1または$1で抽出できる最初のキャプチャグループを表します。

しかし、JSON(および一般的な解析標準)を解析するには、ライブラリを使用することをお勧めします。 (ここにいくつかあるとは言わないが、一般的にはアドバイスとしてこれをとるべきではない)

たとえば、あなたが使用している場合Java、Gsonは、JSONの解析と生成に便利なライブラリです。 JavaScriptを使用している場合は、組み込みのJSONオブジェクトを使用してください。これらの言語を使用していない場合は、他にも素晴らしいライブラリがあるはずです。

希望これは: \"([^(?:\"[,}])]*\"[^(?:\"[,}])]*)\"[,}]について

0

どのように役立ちますか?

この正規表現は、コロンとスペースと二重引用符の間にテキストを探し、別の二重引用符に続けて、大括弧または大括弧で囲みます。それらの間のテキストは、*、少なくとも1つの引用符、および何かで構成されなければなりません。

* somethingは、値を終了するので、カンマまたはカッコで囲まれた引用符が含まれていないもの(空の文字列を含む)を意味します。

この例では、コンマをコロンで置き換えるように修正されていますが、Val"ue1が返されます。

String json = "{\"Key\": \"Value\", \"Key1\": \"Val\"ue1\"}"; 

Matcher m = Pattern.compile(": \"([^(?:\"[,}])]*\"[^(?:\"[,}])]*)\"[,}]").matcher(json); 

while (m.find()) 
{ 
    System.out.println(m.group(1)); 
} 
関連する問題