C# 用于验证服务器路径的正则表达式

C# 用于验证服务器路径的正则表达式,c#,regex,console-application,C#,Regex,Console Application,我似乎找不到正则表达式或其他方法来验证服务器路径。当我从c#控制台应用程序获取参数时,这里是我的服务器路径,必须以以下格式存在: 开始时我必须有\ 这就是我传递值的方式 tynp如果您想使用正则表达式,可以使用如下简单正则表达式: \\\\(\w+\\)+ 如您所见,上面的正则表达式捕获最后一个目录名。如果您不想捕获任何内容,而只想进行匹配,则可以设置非捕获组,如: \\\\(?:\w+\\)+ 因此,我们的想法是: \\\\ --> 2 backslashes (\w+\

我似乎找不到正则表达式或其他方法来验证服务器路径。当我从c#控制台应用程序获取参数时,这里是我的服务器路径,必须以以下格式存在:

开始时我必须有
\

这就是我传递值的方式


tynp

如果您想使用正则表达式,可以使用如下简单正则表达式:

\\\\(\w+\\)+

如您所见,上面的正则表达式捕获最后一个目录名。如果您不想捕获任何内容,而只想进行匹配,则可以设置非捕获组,如:

\\\\(?:\w+\\)+
因此,我们的想法是:

\\\\     --> 2 backslashes
(\w+\\)+ --> with one or more directories

我得出了以下结论。它允许在名称中使用字符,如
-
,但您可能需要根据服务器/共享名称的外观进行调整。这需要一个服务器和共享名,并使共享中的目录成为可选的

^\\\\[\w\-.]+\\[\w\-.]+\\[\w\-.\\]*$

^\\\\        --> Double-backslash at the beginning
[\w\-.]+\\   --> Server name (at least 1 character) followed by backslash
[\w\-.]+\\   --> Share name (at least 1 character) followed by backslash
[\w\-.\\]*$  --> Directories (0 or more characters including backslashes)

为什么不直接使用反斜杠呢?反斜杠用于转义,您很可能需要将每个实例加倍:
\\\myserver\\testfolder
。如果您想用正则表达式执行此操作,您可以直接转义您的“\\”,您可能在寻找类似以下内容:
^(\\\\\)[A-Za-z0-9\\\\]*$
。检查以测试它。您也可以这样做
\\\\     --> 2 backslashes
(\w+\\)+ --> with one or more directories
^\\\\[\w\-.]+\\[\w\-.]+\\[\w\-.\\]*$

^\\\\        --> Double-backslash at the beginning
[\w\-.]+\\   --> Server name (at least 1 character) followed by backslash
[\w\-.]+\\   --> Share name (at least 1 character) followed by backslash
[\w\-.\\]*$  --> Directories (0 or more characters including backslashes)