正则表达式将所有密码替换为 ***

isx*_*ker 4 c# regex replace

我有以下 json:

Data: {"Account":"d\\adm","Password":"cWExZjEiMTM="},"SqlServer":{"InstanceName":"","MachineName":"MyMachine","Port":null}
Run Code Online (Sandbox Code Playgroud)

我想使用 RegExp 将密码值替换为 ***。

cWExZjEiMTM= => ***
Run Code Online (Sandbox Code Playgroud)

在我的示例中,我期望以下输出:

Data: {"Account":"d\\adm","Password":"***"},"SqlServer":{"InstanceName":"","MachineName":"MyMachine","Port":null
Run Code Online (Sandbox Code Playgroud)

我只有以下解决方案:

string invokeSpec = "\":{\"Account\":\"d\\\\adm\",\"password\":\"cWExZjEiMTM=\"},\"SqlServer\":{\"InstanceName\":\"\",\"MachineName\":\"MyMachine\",\"Port\":null}";
var pattern = "\\\"Password\\\":\\\"(?<pass>[^\\\"]*)\\\"";
var replaced = Regex.Replace(invokeSpec, pattern, "\"Password\":\"***\"", RegexOptions.IgnoreCase); 

":{"Account":"d\\adm","Password":"***"},"SqlServer":{"InstanceName":"","MachineName":"MyMachine","Port":null}
Run Code Online (Sandbox Code Playgroud)

Kri*_*lla 5

我建议使用JObject替换Password

var jObject = JObject.Parse(jsonString);
jObject["Password"] = "*****";
Console.WriteLine(jObject.ToString()); //save this value to log
Run Code Online (Sandbox Code Playgroud)