我有一个像以下
的字符串sessionPreset
我想用*****替换密码的值,即somepassword。
我尝试过转换到列表等,但这样做并不好。有没有更好的方法在c#
中执行此操作答案 0 :(得分:1)
试试这个,
string result = Regex.Replace("username=user321@user.com&grant_type=password&password=somepassword", @"(password=)[^\n]*", "$1********");
<强> DEMO
强>
答案 1 :(得分:0)
这是另一种方法,只有当它是一个有效的查询字符串时才有效(你可能需要):
string line = "username=user321@user.com&password=somepassword&grant_type=password";
var parameters = System.Web.HttpUtility.ParseQueryString(line);
parameters.Set("password", new string('*', parameters["password"].Length));
// Or if you want a fixed amount of asterisks:
// parameters.Set("password", "********");
string fixedLine = parameters.ToString();
Console.WriteLine(line);
Console.WriteLine(System.Web.HttpUtility.UrlDecode(fixedLine));
输出:
username=user321@user.com&password=somepassword&grant_type=password
username=user321@user.com&password=************&grant_type=password