繁体   English   中英

正则表达式替换和匹配

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM