[英]Regex modify connection string
可以说我在C#中有此SQL Server连接字符串:
Driver={SQL Server};server=.\sqlexpress;uid=myid;pwd=password;
我想删除字符串的Driver =部分,无论它出现在字符串的何处。 这样一来,它看起来像这样:
server=.\sqlexpress;uid=myid;pwd=password;
我已经尝试正则表达式一段时间了,但是没有运气。
您正在寻找OdbcConnectionStringBuilder
类,它将为您解析该类。
您可以这样做:
res = Regex.Replace(connStr, "Driver=[{][^}]*[}];", "");
为您的字符串产生
server=.\sqlexpress;uid=myid;pwd=password;
您可以使用此:
string pattern = @"\bDriver=[^;]+;";
string replacement = "";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
可能无法正常运行,但希望您能明白:
string result = string.Join(";", connectionString
.Split(';')
.Where(p => !p.StartsWith('Driver'))
附带说明一下,我发现有四种完全不同的解决方案非常令人惊奇;)
为了扩展SLaks给出的答案:
[TestMethod]
public void TestMethod1()
{
var connStr = "Driver={SQL Server};server=.\\sqlexpress;uid=myid;pwd=password;";
var builder = new DbConnectionStringBuilder();
builder.ConnectionString = connStr;
builder.Remove("Driver");
connStr = builder.ConnectionString;
Assert.AreEqual("server=.\\sqlexpress;uid=myid;pwd=password", connStr);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.