我有一個像下面替換字符串的一部分在C#
[email protected]&password=somepassword&grant_type=password
我想更換密碼的值,即somepassword *****的字符串。
我試着轉換爲列表等,但那不是很好。有沒有更好的方式來做到這在C#
我有一個像下面替換字符串的一部分在C#
[email protected]&password=somepassword&grant_type=password
我想更換密碼的值,即somepassword *****的字符串。
我試着轉換爲列表等,但那不是很好。有沒有更好的方式來做到這在C#
這裏的另一種方式來做到這一點,這只是工作,如果它是一個有效的查詢字符串(您可能需要一個):
string line = "[email protected]&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));
輸出:
[email protected]&password=somepassword&grant_type=password
[email protected]&password=************&grant_type=password
試試這個,
string result = Regex.Replace("[email protected]&grant_type=password&password=somepassword", @"(password=)[^\n]*", "$1********");
因此,基本上,你迫使用戶首先改變參數的順序,以使其工作,因爲它將從「密碼」中移除所有內容......對我來說這不是一個可接受的解決方案。 我寧願使用'Regex.Replace(「[email protected]&password=someprd&grant_type=password」,@「(&password =)[^ \ n] *&」,「$ 1 ********& 「)'(加2'&'以確保我們匹配正確的參數)。 – Andrew
研究正則表達式。例如:https://msdn.microsoft.com/en-us/library/xwewhkd1(v=vs.110).aspx – Laith
這就是我要找的,regEx一直是我的弱點 – user1144596
請閱讀一些教程。像這樣一個https://regexone.com – Laith