[英]Regex.Replace and Match
我有一個函數,需要刪除文件路徑中的前斜杠和后斜杠以獲取服務器名稱。 路徑不一定總是有斜杠。
這是我在應用程序的另一部分中找到的內容:
public static string ResolveToIP(string path) {
return Regex.Replace(path, @"^\\\\(.*?)\\(.*)$",
delegate(Match M) {
try {
IPAddress[] addresses = System.Net.Dns.GetHostAddresses(M.Groups[1].Value);
return "\\\\" + addresses[0].ToString() + "\\" + M.Groups[2].Value;
}
catch {
return path;
}
});
}
因此,在"////serverName/user7$/GTOUser"
, M.Groups[1]
將返回"serverName"
,這是我需要的。 我有一個也可以使用的子字符串函數,但是我想知道是否沒有一種簡單的方法可以使用已經存在但沒有替換的正則表達式。
我發現了,比我想象的要簡單得多:
string pattern = @"^\\\\(.*?)\\(.*)$";
Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
Match m = r.Match(AS.SourcePath);
string server = m.Groups[1].Value;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.