データ自体に含まれるJSONデータに二重引用符を見つける必要があります。文字列内のテキストの検索
例:{「キー」:「値」、「キー1」、「ヴァル」UE1「}
は今ヴァルでの二重引用符」UE1は、他の二重引用符取得していないする必要があります。
どのようにこれを達成するためのアイデアですか?
データ自体に含まれるJSONデータに二重引用符を見つける必要があります。文字列内のテキストの検索
例:{「キー」:「値」、「キー1」、「ヴァル」UE1「}
は今ヴァルでの二重引用符」UE1は、他の二重引用符取得していないする必要があります。
どのようにこれを達成するためのアイデアですか?
二重引用符からデータを抽出するための正規表現は(?<=")[^"]*(?="))
です。かっこは、\1
または$1
で抽出できる最初のキャプチャグループを表します。
しかし、JSON(および一般的な解析標準)を解析するには、ライブラリを使用することをお勧めします。 (ここにいくつかあるとは言わないが、一般的にはアドバイスとしてこれをとるべきではない)
たとえば、あなたが使用している場合Java、Gson
は、JSONの解析と生成に便利なライブラリです。 JavaScriptを使用している場合は、組み込みのJSON
オブジェクトを使用してください。これらの言語を使用していない場合は、他にも素晴らしいライブラリがあるはずです。
希望これは: \"([^(?:\"[,}])]*\"[^(?:\"[,}])]*)\"[,}]
について
どのように役立ちますか?
この正規表現は、コロンとスペースと二重引用符の間にテキストを探し、別の二重引用符に続けて、大括弧または大括弧で囲みます。それらの間のテキストは、*、少なくとも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));
}
あなたのJSONは私にとって妥当ではないようです。できるならば、この醜いエスケープ "か、代わりに一重引用符を使用してください。 – Antoine