[英]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.