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测试仪:太好了,我会检查它的,谢谢!