次の正規表現を使用します。
(?:\{)(?<Property>[a-z0-9]+)(?:\:)
それは何:
(?:\{)
- 試合をしかし開いカーリーブラケットを捕捉しない
(?<Property>[a-z0-9]+)
- キャプチャグループのプロパティの名前をキャプチャします。Property
(?:\:)
- 再び、試合が、:
ので
プロパティの後をキャプチャしていない、基本的に、何がやりたいことは、パターン
{Name:
と一致しているが、それは
Property
グループの
{"
+
値に置き換えられている +
:
。以下
と交換を行うためのコードです:
string pattern = @"(?:\{)(?<Property>[a-z0-9]+)(?:\:)";
Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
string targetString = @"{Name: {\""before\"":'Aj', \""after\"":'Ajay'} },";
string replacement = @"{""${Property}"":";
return regex.Replace(targetString, replacement);
${Property}
をキャプチャグループの名前であり、それはあなたの財産の名前を保持します。
このようにJSONを変更することは、パーサーの仕事です。個人的には、ソースデータを修正して、これを行う必要はありません。 –
@TimBiegeleisen、実際には、最初の場所で間違ったコードのために格納されたDBからソースデータが来ています。私は今それを修正しました。しかし、古いデータの場合、正規表現を使用して置き換える必要があります。 – Appu
問題のあるキーはすべて一意で、すべて同じ方法で破損していますか? –