[英]How to replace a matched group value with Regex
我想修改连接字符串中“数据源”组件的值。 我正在考虑以下解决方案:
使用此正则表达式模式:
"data source\=((\w|\-)+?\\{1}\w+?)\;"
我可以获得以下字符串匹配项:
Match.Groups[0].Value = "data source=MY-PC\SQLEXPRESS;"
Match.Groups[1].Value = "MY-PC\SQLEXPRES"
因此,首先,我想在连接字符串中找到与“数据源=某物;”匹配的部分,其次,仅替换连接字符串中的“某物”。 怎么做?
如果您坚持用正则表达式替换,请注意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);
对于.NET中的大多数连接字符串类型,应该有一个对应的ConnectionStringBuilder类来处理这种事情。 您如何连接到数据库?
只需更换它。
string dbSource = "data source=myserver\\sqlexpress";
int sLen = dbSource.IndexOf("=") + 1;
string getString = dbSource.Substring(sLen, dbSource.Length - sLen);
dbSource = dbSource.Replace(getString, "whatyouwantotoreplaceitwith");
您可以使用带有'='字符的简单string.split进一步拆分匹配项,或者如果您喜欢正则表达式,请参见MSDN Regex.Replace方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.