将序列化的 C# 元组转换为 PropertyName: 值的正则表达式是什么?

What is the Regex expression to transform a serialized C# tuple into PropertyName: value?

如果你拿一个元组 (string MyProperty, objet MyValue) 并序列化它,你最终会得到 {"Item1": "MyProperty", "Item2": <value>} 而你真正想要的是 {"MyProperty": <value>}

有人可以帮我用正确的 Regex 表达式来来回转换这两个吗?

这应该演示来回转换。请注意,要在字符串中转义 ",您需要使用其中的 2 个。

using System.Text.RegularExpressions;

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

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

查看实际效果:https://repl.it/repls/SquigglyPricklyFormula