替换c#中的部分字符串

时间:2017-03-19 02:54:28

标签: c#

我有一个像以下

的字符串
sessionPreset

我想用*****替换密码的值,即somepassword。

我尝试过转换到列表等,但这样做并不好。有没有更好的方法在c#

中执行此操作

2 个答案:

答案 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