Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 哪个正则表达式只返回网络驱动器名?_C#_Regex_Match_Backslash_Network Drive - Fatal编程技术网

C# 哪个正则表达式只返回网络驱动器名?

C# 哪个正则表达式只返回网络驱动器名?,c#,regex,match,backslash,network-drive,C#,Regex,Match,Backslash,Network Drive,我的程序读取一个字符串列表,其中包含位于网络驱动器上的文件名和文件夹名 以下是我的列表可以包含的一些示例: \\NETWORKDRIVE\text1.txt \\NETWORKDRIVE\\text2.txt \\NETWORKDRIVE\foldername\text3.txt \\NETWORKDRIVE\\ \\NETWORKDRIVE\ \\NETWORKDRIVE 我需要一个正则表达式来只返回网络驱动器名(包括前导的“\”字符) 我尝试过各种正则表达式,发现了一种几乎可以工作的正则表

我的程序读取一个字符串列表,其中包含位于网络驱动器上的文件名和文件夹名

以下是我的列表可以包含的一些示例:

\\NETWORKDRIVE\text1.txt
\\NETWORKDRIVE\\text2.txt
\\NETWORKDRIVE\foldername\text3.txt
\\NETWORKDRIVE\\
\\NETWORKDRIVE\
\\NETWORKDRIVE
我需要一个正则表达式来只返回网络驱动器名(包括前导的“\”字符)

我尝试过各种正则表达式,发现了一种几乎可以工作的正则表达式。以下是我目前的情况:

^(\\+)(.*?)(\\+)
这个正则表达式有两个问题

第一个问题是它与网络驱动器名和后面的“\”字符匹配。第二个问题是,如果网络驱动器名不以任何“\”字符结尾,则它只匹配前导的“\”字符

以下是我要展示的结果:

\\NETWORKDRIVE\text1.txt => \\NETWORKDRIVE\
\\NETWORKDRIVE\\test2.txt => \\NETWORKDRIVE\\
\\NETWORKDRIVE\foldername\text3.txt => \\NETWORKDRIVE\
\\NETWORKDRIVE\\ => \\NETWORKDRIVE\\
\\NETWORKDRIVE\ => \\NETWORKDRIVE\
\\NETWORKDRIVE => \\
正如你所看到的,我没有得到我想要的结果。我只希望结果是:

\\NETWORKDRIVE
在所有情况下

有人能帮我修改和/或更改正则表达式以完成我需要它做的事情吗

非常感谢。

您可以使用:

^\\{2}[^\\]+

[^\\]
表示除反斜杠以外的所有字符

我使用的是在线正则表达式测试仪(),当我使用您的正则表达式时,结果是一样的,只是在最后一种情况下它可以工作,其中文件夹名为\\NETWORKDRIVE,它返回\\NETWORKDRIVE。@JanTacci:对不起,我还没有阅读您的全部文章,请现在重试。啊,这样行了!你介意解释一下{2}的作用吗?谢谢你使用什么语言?我的程序是C#,我使用Regex.Match(文件名,模式),但我使用正则表达式测试网站()进行测试。你可以在这里找到一个.net Regex测试仪:太好了,我会检查它的,谢谢!