제한된 양의 폴더 (상위 3 레벨)를 추출하기위한 정규식
-
13-12-2019 - |
문제
다음 파일 경로를 고려하십시오.
\\fileserver\share\documents\department\my_project\a_sub_folder\myfile.doc
.
정규 표현식으로 텍스트 "\ documents \ department \ my_project"텍스트를 추출해야합니다.세부 정보 :
- "FileServer"및 "Share" 제외
- 3 "논리적 인"최상위 폴더로 제한하여 "\ a_sub_folder" 를 제외합니다.
- 파일 이름이 포함되지 않습니다 ( "myfile.doc")
다음 regex를 사용하여 .. :
^.*share(?P<folders>\\.+)\\.+
.
.. 나는 내 "폴더"그룹에서 이것을 얻는다 :
\documents\department\my_project\a_sub_folder
.
NAGS가 "a_sub_folder"를 제거하는 방법입니다.효과가없는 폴더 그룹에 반복 연산자를 추가해보십시오.
^.*share(?P<folders>\\.+){1,3}\\.+
^.*share(?P<folders>\\.+){1,3}?\\.+
.
위의 두 가지 중 첫 번째는 출력을 변경하지 않습니다. 반면 두 번째 그룹은 빈 그룹 "폴더"
를 반환합니다.나의 정규식이 근본적으로 잘못되었지만 이유를 알 수없는 느낌이 들었습니다.누구든지 어떤 빛을 흘릴 수 있습니까?
감사합니다 :)
/ geir
해결책
어떨까요?
^.*share(?P<folders>(?:\\[^\\]+){1,3})
. 제휴하지 않습니다 StackOverflow