2012-07-16 4 views
0

정규 표현식을 처음 사용했지만 패턴이 있는지 여부를 찾기 위해 문자열을 조사했습니다. 나는 다음과 같은 파이썬 코드를 사용하여 시도했습니다파이썬 정규 표현식에서 숫자 검색

: 나는 5의 숫자로 구분 된 3 개 그룹을 찾기 위해 노력하고있어

prog=re.compile('555.555.555') 
m=prog.match(somestring) 
if m: print somestring 

. 이 코드는 내가 찾고있는 것을 반환하지 않습니다.

제안 사항?

편집 :

여기

보다 기본 버전 테스트하는 일부 코드입니다 : 이것은 1312보다는 10203 반환

i,found=0,0 
while found==0: 
    istr=str(i) 
    prog=re.compile(r'1\d2\d3') 
    m=prog.search(istr) 
    if m: 
     print i 
     found=1 
     break 
    i=i+1 

+2

당신은 아마 원하는 '555 \ D + 555 \ D + 555'을 사용, 555의 각 그룹 사이의 한 자리를 허용하려면? 예를 들어 명확히 설명하십시오. – nhahtdh

+0

"somestring"의 예는 무엇입니까? –

+0

나는''prog.match''가 아닌''prog.search''도 사용하고 싶습니다. – mouad

답변

5

귀하의 정규식 (일종의) OK,하지만 당신이있어 그것을 잘못 사용.

m = prog.search(somestring) 

또는 정규식은 only find a match if it is at the beginning of the string입니다. 또한

, 당신이 정말로 단지

prog = re.compile(r'555\d555\d555') 
+0

Tim에게 도움을 주셔서 감사합니다 - 설명에 추가 정보를 참조하십시오. – Diamond

관련 문제