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