我的程序讀入一個字符串列表,其中包含位於網絡驅動器上的文件和文件夾名稱。什麼正則表達式將只返回網絡驅動器名稱?
這裏是什麼我列表可以包含一些例子:
\\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
所有情況。
任何人都可以幫助我修改和/或更改我的正則表達式來執行我需要的操作嗎?
非常感謝。
你用什麼語言的所有字符? –
那麼我的程序是C#,我使用Regex.Match(fileName,pattern),但我正在使用正則表達式測試網站(http://regexpal.com)進行測試。 –
你可以在這裏找到一個.net正則表達式測試器:http://regexstorm.net/tester –