我正在尝试在C#中创建一个正则表达式,它将替换连接字符串的密码,以便在我在页面上显示它时不会显示它.连接字符串密码在字符串中的某处,如PWD = password;
到目前为止,我有:
Regex.Replace(connStr, "PWD=.*;", "PWD=********");
Run Code Online (Sandbox Code Playgroud)
这样可以找到模式的开头,但问题是外卡(.*)还包括; 所以模式永远不会终止,字符串的其余部分也会被替换.我怎么能说everthing但是; 在我的RegEx?
谢谢.
Ry-*_*Ry- 16
你可以使用非贪婪的量词:
PWD=.*?;
Run Code Online (Sandbox Code Playgroud)
或排除;s:
PWD=[^;]*;
Run Code Online (Sandbox Code Playgroud)
Chr*_*cht 15
您不需要为此使用RegEx - .NET具有内置的SqlConnectionStringBuilder类,您可以使用该类从连接字符串中获取值并更改它们.
示例代码:
string conString = "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;";
var builder = new SqlConnectionStringBuilder(conString);
builder.Password = "********";
Console.WriteLine(builder.ToString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6958 次 |
| 最近记录: |