문제

다음 파일 경로를 고려하십시오.

\\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})
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top