특정 문자 시퀀스와 일치하지 않는 문자열을 찾고 싶습니다. 예를 들어 :빠른 파이썬 정규식 질문 : 부정 된 문자 집합을 일치 시키십시오.
뭔가
같은REGEX = r'[^XY]*'
내가 서로 옆에 X와 Y를 제외한 모든 문자가 문자열을보고 싶습니다
... 정규식 위부터 작동하지 않습니다 그것은 X와 Y를 따로 차단합니다.
특정 문자 시퀀스와 일치하지 않는 문자열을 찾고 싶습니다. 예를 들어 :빠른 파이썬 정규식 질문 : 부정 된 문자 집합을 일치 시키십시오.
뭔가
같은REGEX = r'[^XY]*'
내가 서로 옆에 X와 Y를 제외한 모든 문자가 문자열을보고 싶습니다
... 정규식 위부터 작동하지 않습니다 그것은 X와 Y를 따로 차단합니다.
방법에 대해 :
if "XY" not in s:
print "matched"
else
print "not matched"
또는이 일부에 포함 이상 정규 표현식입니까? 그렇게 할 수있는 몇 가지 방법이 있습니다
첫 줄에 'not'가 추가 된 것 같습니다. –
고정 오타 :
REGEXP="...(?!XY)..."
편집 : 그럼 어쩌면 당신은 부정적 예측 식을합니다.
^(?!.*XY).*$
룩어 식의 아무 곳이나 문자열에 XY
순서와 일치하도록 시도합니다. 네거티브 lookahead이므로 찾으면 일치 시도가 실패합니다. 그렇지 않으면 .*
이 진행되어 전체 문자열을 사용합니다.
^(?:(?!XY).)*$
이 하나 반복적 모든 문자 (.
)과 일치하지만, 룩어 캐릭터가 XY
시퀀스의 시작 상태가 아닌 것을 확인한 후에.
^(?:[^X]+|X(?!Y))*$
는 반복 하나 X
를 제외한 모든 문자의 이상, 또는이 Y
다음에 있지 않은 경우 X
일치합니다.
처음 두 개의 정규 표현식을 사용하면 원본 문자열의 개행 문자 인 경우 DOT_ALL 한정자를 적용해야합니다. 세 번째 문자는 도트 대신에 부정 문자 클래스 인 [^X]
을 사용하기 때문에 필요하지 않습니다.
파이썬 정규식에 대해서는 많이 알지 못합니다. 또는'*'를'+' –
으로 바꾸어보십시오. http://nmichaels.org/regular.py에서 확인했는데 제대로 작동하는 것 같습니다. 당신은 그것을 시험해 볼 문자열을 줄 수 있습니까? – nmichaels
또한 X와 Y를 별도로 차단하는 것에 대해 어떤 의미 인지도 알지 못합니다. 이 정규식은 * Xs와 Ys를 무시할 것입니다 ... –