【发布时间】:2017-06-05 17:21:09
【问题描述】:
我在使用服务器路径的正则表达式时遇到问题。我有很多路径,它们可以区分如下:
\\server1\folder\file
或
\\server2\folder\subfolder\file
我需要从中获取服务器名称,并且只获取服务器名称。我试过使用
[\\(.*?)\\]
这与我想要的和多个部分相反,而不仅仅是服务器名称。正确的表达方式是什么?
【问题讨论】:
-
\(.*?)\\ 将捕获两个 \. 之间的第一个短语
-
string host = new Uri(@"\\server2\folder\subfolder\file").Host; -
@AlexK。谢谢,谢谢是一个更清洁的解决方案,可以像我希望完成的那样大规模实施。
-
Alex 的答案是最好的,但为了完整起见,我认为您想要的 RegEx 是
(?<=\\\\)[^\\]* -
你可以使用字符串拆分:string input = @"\\server2\folder\subfolder\file";字符串输出 = input.Split(new char[] {'\\'}, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault();