2012-10-12 4 views
0

현재 This is a correct:test msg: a b c bool:y과 같은 문자열이 [('correct', 'test'), ('msg', ''), ('bool', 'y')] (비단뱀 re.findall 사용)을 반환 할 때 정규식 '([^: ]+):([^ ]+)?'이 있습니다.Regex a : b c d a : b

실제로는 [('correct', 'test'), ('msg', 'a b c'), ('bool', 'y')]과 같은 것을 반환하고 싶습니다. regex가 두 번째 청크를 들여다 보도록 강제로 넣고 그 안에 :이 있는지 확인합니다.

+0

이유 '[("정확한", "테스트) ("MSG', 'AB의 C') ('BOOL', 'Y')] '이 아닌'[('올바른', ' 테스트 '), ('msg ','a '), ('bc bool ', y')]'? 즉, 정규 표현식을 사용하면 하나를 원하지만 다른 하나를 원한다는 것을 어떻게 알 수 있습니까? –

+0

소비하는 단어가 첫 번째 위치에 속해 있지 않은지 확인하기 위해 부정적 예측을해야하는 것처럼 들립니다. –

답변

관련 문제