foo
은 아니지만 bar
이 아닌 모든 행을 찾기 위해 Python 프로그램을 검색 할 정규식을 찾고 있는데, 이는 키워드 인수로 메소드에 전달됩니다. 나는 lookahead와 lookbehind 단언으로 놀고있다. 그러나 운이별로 없다.정규식에서 A가 아닌 B를 찾을 수 있습니다.
어떤 도움이 필요합니까?
감사
foo
은 아니지만 bar
이 아닌 모든 행을 찾기 위해 Python 프로그램을 검색 할 정규식을 찾고 있는데, 이는 키워드 인수로 메소드에 전달됩니다. 나는 lookahead와 lookbehind 단언으로 놀고있다. 그러나 운이별로 없다.정규식에서 A가 아닌 B를 찾을 수 있습니다.
어떤 도움이 필요합니까?
감사
당신이 찾고자하는 문자열 foo
와 현재해서는 안 다른 문자열 bar
이있는 경우, 당신이 사용할 수 있습니다 정확하게가 모든 증거 요구 사항을 만족하는지 정규 표현식을 만들기
^(?!.*bar).*foo
을 파이썬 코드가 일반 언어가 아니기 때문에 요구 사항은 매우 어렵습니다. 그러나 필요에 따라이 코드를 시작점으로 사용할 수 있어야합니다.
^
이후에 이러한 시나리오의 미리보기가 항상 더 잘 작동하는 것처럼 보입니다. 그것을 읽으면 나에게도 더 이해가됩니다.
(?!.*bar)^.*foo
this has a foo # pass
so does this has a foo # pass
i can haz foo # pass
but i haz foo and bar! # fail
또한하지 정규식이 할 수 있습니다 :
for line in file:
if "foo" in line and "bar" not in line:
#do something
많은 파일을 검색 중이므로 정규 표현식을 사용하고 파일 이동을 처리하는 도구를 사용하는 것이 훨씬 쉽습니다. 고마워요. – Zach
. 나는 정규 표현식을 좋아하고 매일 사용한다. 때로는 프로그램에서 원하는 것을 정확하게 말해야하며 두통을 피할 수 있다는 점을 명심해야합니다. ;) – Ipsquiggle
나는 모든 사건은 같은 라인에있는, 내가 놓칠 경우 일부는 '아무튼 상당히 확신 문제 없습니다. 방금 일부 문맥을 제공하기 위해 파이썬을 언급했습니다. – Zach
이것은 작동합니다 ... 감사합니다 ..... + 1 그리고 올바른 것으로 선택했습니다 – Zach
@Zach, Mark가 의미하는 바는 'bar'문자열은 키워드가 없어도 발생할 수 있다는 것입니다 (또는 식별자를 의미합니까?) : 문자열 리터럴 또는 주석의 일부입니다. –