如何从一个UNC拉的服务器名称(How to pull the server name from a

2019-07-29 07:58发布

会有人能告诉我怎么拉的服务器名称了UNC的?

恩。

//服务器/目录/目录

编辑:我很抱歉,但它看起来像我需要澄清一个错误:路径其实更像是:

//服务器/ d $ /目录

我知道这可能改变的事情一点点

Answer 1:

如何Uri

Uri uri = new Uri(@"\\servername\d$\directory");
string[] segs = uri.Segments;
string s = "http://" + uri.Host + "/" + 
    string.Join("/", segs, 2, segs.Length - 2) + "/";


Answer 2:

又一个选项,显示不同选项的缘故:

(?<=^//)[^/]++


该服务器名称将是\0$0的功能,或者干脆结果取决于你如何把它和你的语言的优惠。


说明在正则表达式评论方式:

(?x)      # flag to enable regex comments
(?<=      # begin positive lookbehind
^         # start of line
//        # literal forwardslashes (may need escaping as \/\/ in some languages)
)         # end positive lookbehind
[^/]++    # match any non-/ and keep matching possessively until a / or end of string found.
          # not sure .NET supports the possessive quantifier (++) - a greedy (+) is good enough here.


Answer 3:

这应该做的伎俩。

^//([^/]+).*

服务器名称是第一个捕获组



Answer 4:

正则表达式匹配servername

^//(\w+)


Answer 5:

丑陋,但它只是工作:

var host = uncPath.Split(new [] {'\\'}, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault();


文章来源: How to pull the server name from a UNC
标签: c# regex uri