Что такое выражение Regex для преобразования сериализованного кортежа C # в PropertyName: value? - PullRequest
0 голосов
/ 06 декабря 2018

Если вы берете кортеж (string MyProperty, objet MyValue) и сериализуете его, вы в итоге получаете {"Item1": "MyProperty", "Item2": <value>}, тогда как в действительности вы хотите {"MyProperty": <value>}

Может кто-нибудь, пожалуйста, помогите мне с правильным выражением Regex для преобразования этих двухтуда-сюда?

1 Ответ

0 голосов
/ 16 декабря 2018

Это должно продемонстрировать преобразование в и обратно.Обратите внимание, что для экранирования "в строках вы используете 2 из них.

using System.Text.RegularExpressions;

Regex tupleRegex = new Regex(@"{""Item1"": ("".+?""), ""Item2"": (.+?)}");
string tupleString = @"{""Item1"": ""MyProperty"", ""Item2"": <value>}";
string tupleToKeyValuePairResult = tupleRegex.Replace(tupleString, "{$1: $2}");
Console.WriteLine(tupleToKeyValuePairResult);

Regex kvpRegex = new Regex(@"{("".+?""): (.+?)}");
string kvpToTupleResult = kvpRegex.Replace(tupleToKeyValuePairResult, @"{""Item1"": $1, ""Item2"": $2}");
Console.WriteLine(kvpToTupleResult);

смотрите его в действии: https://repl.it/repls/SquigglyPricklyFormula

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...