2014-10-23 3 views
0

과제 연습 : 숫자가 1과 0 (아무 것도 0이 아님)과 정확히 일치하는 3 개의 0이 일치하는 정규식 문자열 (문자열 만)을 삽입하십시오. 문자열에 대한 예를 들어Python Regex String

"101000100 00101000 1010 1000" 

정규식 패턴 (findall은() 사용)에 3 경기를 제공해야합니다 :

['101000', '00101000', '1000'] 

내 대답했다 :

r"[10]*1000" 

하지만 '아무튼 그들이 원하는 대답 인 것 같습니다. 어떤 제안?

+1

정규식에 '000'대신 끝에 '000'이 있습니다. – anubhava

+0

테스트를 해 보셨습니까? –

+0

예. 했어요. 정답을 제시하는 몇 가지 방법이 있습니다. 문제는 실제로 제가 대답을 입력하는 방식이었습니다. 그냥 입력해야했다 : "[10] * 0 {3}" – Newbie

답변

1

나는, 당신이 뭔가를 할 생각

>>> s = "101000100 00101000 1010 1000" 
>>> m = re.findall(r"\b[10]*?000\b", s) 
>>> m 
['101000', '00101000', '1000'] 
단어 문자와 단어가 아닌 문자 사이에 일치
  • \b 단어 경계.
  • [10]*? 0 번 또는 1 번 이상 0 번 이상 일치 (가능한 가장 짧은 일치).
  • 000 정확히 3 개의 0입니다.
  • \b 일치하는 0 다음에는 단어 경계가 와야합니다.
+1

이것은 숙제 문제였다. OP는 그/그녀의 정규 표현식을 고치기 위해 약간의 지침이 필요했다. – anubhava

+1

감사합니다. – Newbie