2014-01-30 3 views
0

모든 숫자가 포함 된 고정 길이 10의 문자열과 일치하도록 주어진 코드를 작성했습니다.파이썬 정규식 일치가 작동하지 않습니다.

import re 
result=re.match("^d{10}$", u"5478512045") 

하지만 아무 것도 반환하지 않습니다. 나는 그것이 왜 실패했는지 모른다. 제가 여기서 잘못된 일을한다면 저를 바로 잡으십시오.

답변

1

d 제어 문자에 \이 (가) 있습니다. 그것은해야 다음 d 전에 \없이

result=re.match("^\d{10}$", u"5478512045") 

, 당신의 정규식 리터럴 d 문자열을 일치하도록 노력하고있다. 이것을 \d으로 변경하면 십진수의 특수 문자와 일치합니다.

+0

감사합니다. 이제 "<_sre.SRE_Match object at 0x02A27138>"반환 값을 얻고 있습니다. 제가 통과했는지 실패했는지 어떻게 확인합니까? – gliese581g

+2

'result.group()'은 그 결과를 출력합니다. 그러나'<_sre.SRE_Match at 0x02A27138>'라는 사실은 당신이 일치한다는 것을 의미합니다. – danasilver

+1

@ dsilver1221이 맞습니다. 물체를 되찾은 사실은 당신이 성냥을 가졌다는 것을 의미합니다. 'None'을 반환하면 (이전과 마찬가지로) 일치하지 않음을 의미합니다. 're'모듈에 대한 문서 (http://docs.python.org/2/library/re.html#re.match)를 확인하십시오. 매우 포괄적입니다. –

관련 문제