Рассмотрим следующий путь к файлу:
\\fileserver\share\documents\department\my_project\a_sub_folder\myfile.doc
Мне нужно извлечь текст "\ documents \ отдела \ my_project" с помощью регулярного выражения.Подробности:
- Исключить "fileserver" и "share"
- Ограничить до 3 "логических" папок верхнего уровня после, исключая, таким образом, "\ a_sub_folder"
- Don 't включить имя файла («myfile.doc»)
Используя следующее регулярное выражение ..:
^.*share(?P<folders>\\.+)\\.+
.. Я получаю это в своей группе «Папки»:
\documents\department\my_project\a_sub_folder
Что меня беспокоит, так это то, как избавиться от "a_sub_folder".Я попытался добавить операторы повторения в группу папок без эффекта:
^.*share(?P<folders>\\.+){1,3}\\.+
^.*share(?P<folders>\\.+){1,3}?\\.+
Первый из двух приведенных выше не меняет вывод, а второй возвращает пустую группу «папки»
У меня такое чувство, что мое регулярное выражение в корне неверно, но я не могу понять, почему.Может кто-нибудь, пожалуйста, пролить свет на это?
спасибо:)
/ Geir