Моя программа читается в строковом списке, который содержит имена файлов и папок, расположенные на сетевом диске.Какое регулярное выражение вернет только имя сетевого диска?
Вот некоторые примеры того, что мой список может содержать:
\\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 –