이 조건을 만족시키는 단일 정규식을 얻을 수있는 방법이 있습니까 ?? 나는 세트 MBIPI, 순서, 에서 세 글자가있는 "단어"를 찾고 있어요 그러나 I.어떻게 부울 AND를 정규식에 포함합니까?
예를 포함해야한다
.
re.match ("[MBDPI {3}"foo에) 및 "I"에 foo
그래서 올바른 결과 (re 모듈을 사용 파이썬)이지만, I로부터이 얻을 수있다 하나의 정규식?
>>> for foo in ("MBI", "MIB", "BIM", "BMI", "IBM", "IMB", "MBD"):
... print foo,
... print re.match("[MBDPI]{3}", foo) and "I" in foo
MBI True
MIB True
BIM True
BMI True
IBM True
IMB True
MBD False
정규식이있는 경우 사용할 수 있음을 알고 있습니다. 부울 OR 연산자로 있지만 부울 AND 이에 상응하는 연산자가 있습니까?
또는 전방 또는 후방 조회가 필요합니까?
이\b(I[MBDPI]{2}|[MBDPI]I[MBDPI]|[MBDPI]{2}I)\b
\b
문자가 0 폭 단어 경계를 일치 :
str.find()를 사용하여 'I'문자를 검색 할 수도 있습니다. 출처 : http://docs.python.org/library/stdtypes.html#str. – Dor