폴더를 무시하지만 일부 폴더는 보존하려고합니다. 나는 불행하게도이 작동하지 않습니다이.hg 일부 하위 폴더를 제외한 폴더
syntax: regexp
^site/customer/\b(?!.*/data/.*).*
같은 정규 표현식 매칭을 시도했다. 이 answer에서 파이썬은 고정 너비 부정 참조 만 읽었습니다.
원하는 무시 무시할 수 있습니까?
폴더를 무시하지만 일부 폴더는 보존하려고합니다. 나는 불행하게도이 작동하지 않습니다이.hg 일부 하위 폴더를 제외한 폴더
syntax: regexp
^site/customer/\b(?!.*/data/.*).*
같은 정규 표현식 매칭을 시도했다. 이 answer에서 파이썬은 고정 너비 부정 참조 만 읽었습니다.
원하는 무시 무시할 수 있습니까?
파이썬은 부정적인 내다에게 조회 (?=.*foo)
을 지원 멋지다. 그러나 임의 길이 부정 표정 (lookbehind) 검색을 지원하지 않습니다. (?<=foo.*)
. 고정 (?<=foo..)
이어야합니다.
즉, 문제를 확실히 해결할 수 있음을 의미합니다.
문제 : /customer/(?!.*/data/.*).*
.
/customer/data/name
입력 예를 들어 봅시다. 이유가 있습니다.
/customer/data/name
^^^^^^^^^^ -> /customer/ match !
^(?!.*/data/.*) Let's check if there is no /data/ ahead
The problem is here, we've already matched "/"
so the regex only finds "data/name" instead of "/data/name"
^^^^^^^^^ .* match !
은 기본적으로 우리는 단지 우리가 문자열의 시작에 있는지 확인하고 우리가 \b
를 사용하여 customer
일치하는지 확인하기 위해 앵커 ^
을 추가, 하나 슬래시를 제거해야 정규식 수정 : ^/customer\b(?!.*/data/).*
. 답변에 대한
안녕하세요, 감사합니다. 내 폴더에는 다른 고객을위한 폴더가 있으며 여기에 다시 데이터 폴더를 저장할 수 있습니다. 이론적으로 내 regexp 그 일치해야합니다. ^ site/customer/\ b (?!. */data /.*).* 그러나 왼쪽의 문제를 해결하려고 시도했지만 작동하지 않습니다. – Niksac
@Niksac [regex101] (http://regex101.com) 데모를 제공해주십시오. 또한 나는'^/customer/b (?!. */data /)****'를 사용하지 않았고'^ site/customer/\ b (?!. */data /.*).*'를 사용하지 않았다는 것에주의하십시오. (당신은 forwardslash를 추가했습니다) – HamZa
regexp는 http://regex101.com/r/pG9mV1에서 작동하지만 여전히 모든 파일을 무시합니다 – Niksac