我想修改"数据源"的值。连接字符串中的组件。我正在考虑以下解决方案:
使用此正则表达式模式:
"data source\=((\w|\-)+?\\{1}\w+?)\;"
我可以获得以下字符串匹配:
Match.Groups[0].Value = "data source=MY-PC\SQLEXPRESS;"
Match.Groups[1].Value = "MY-PC\SQLEXPRES"
所以在连接字符串中我首先要找到与"数据源=某些东西匹配的部分;",然后再替换"某些东西"在连接字符串中。怎么做?
答案 0 :(得分:3)
如果您坚持使用正则表达式替换,请注意C#无法修改构建的字符串,您需要获取一个新的字符串,并替换所需的部分。
var connectionString = @"data source=MY-PC\SQLEXPRESS;";
var pattern = @"(data source=)((\w|\-)+?\\\w+?)\;";
var newConnectionString = Regex.Replace(connectionString, pattern, "$1" + "something");
Console.WriteLine(newConnectionString);
答案 1 :(得分:1)
对于.NET中的大多数连接字符串类型,应该有一个对应的ConnectionStringBuilder类来处理这种事情。你是如何连接数据库的?
答案 2 :(得分:1)
只需更换它。
string dbSource = "data source=myserver\\sqlexpress";
int sLen = dbSource.IndexOf("=") + 1;
string getString = dbSource.Substring(sLen, dbSource.Length - sLen);
dbSource = dbSource.Replace(getString, "whatyouwantotoreplaceitwith");
答案 3 :(得分:0)
您可以使用带有'='字符的简单string.split进一步拆分匹配,或者如果您喜欢正则表达式,请参阅MSDN Regex.Replace方法