Skip to main content
 首页 » 编程设计

c#之如何用正则表达式替换匹配的组值

2024年02月01日26开发

我想修改连接字符串中“数据源”组件的值。我正在考虑以下解决方案:

使用这个正则表达式模式:

"data source\=((\w|\-)+?\\{1}\w+?)\;" 

我可以获得以下字符串匹配:

Match.Groups[0].Value = "data source=MY-PC\SQLEXPRESS;" 
Match.Groups[1].Value = "MY-PC\SQLEXPRES" 

所以首先我想在连接字符串中找到与“data source=something;”匹配的部分,然后只替换连接字符串中的“something”。如何做到这一点?

请您参考如下方法:

如果您坚持替换 Regex,请注意 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);