2017-12-12 23 views
0

그러나 내 코드를 실행하려고 "AttributeError : 'NoneType'개체에 'group'특성이 없습니다."그리고 정규식을 설치할 수없는 것 같습니다. 나는 그것이 붙박이다는 것을 읽었다 그러나 나는 무엇을 해야할지 모른다."AttributeError : 'NoneType'객체에 'group'속성이 없습니다.

while i>0: 
    print("Number "+str(i)) 
    src = str(br.parsed()) 
    start1 ="¿" 
    end1 = "?<" 
    result = re.search('%s(.*)%s' % (start1,end1), src).group(1) 
    print(str(result)) 
    question_index=questions.index(result) 
    print("The answer is " + answers[question_index]) 
    question_form = br.get_form() 
    question_form["user_answer"]=answers[question_index] 
    br.submit_form(question_form) 
    i=i-1 

이 라인이 오류가 발생합니다 : 당신은 정규식 모듈 re을 "설치"할 필요가 없습니다

result = re.search('%s(.*)%s' % (start1,end1), src).group(1) 

답변

1

여기에 오류가 발생합니다 코드입니다. 당신은 그것이 내장되어 있고, 가지고 있고, 잘 작동하고 있다는 것이 맞습니다. 가지고 있지 않다면 가져 오기를 시도 할 때 ImportError을 얻었을 것입니다.

문제는 정규식 검색이 일치하는 항목을 찾을 수 없으므로 None을 반환한다는 것입니다. 그런 다음 동일한 행에있는 None의 특성 "그룹"에 즉시 액세스하려고합니다. 존재하지 않습니다. 검색 결과를 .group(1)과 구분하고 None의 반환 유형을 확인한 다음 반환이 None이 아닌 경우에만 진행합니다. re.search()의 반환 값이 None이면 오류 종료를 처리하려는 모든 작업을 수행하고 오류 메시지 HCF을 표시합니다.

변경이 :

result = re.search('%s(.*)%s' % (start1,end1), src) 
if result is None: 
    print("Error! No matches") 
    return # or break, exit, throw exception, whatever 

result = result.group(1) # reassign just the group you want to "result" 
# carry on with the rest of your loop 
이 같은 것으로

result = re.search('%s(.*)%s' % (start1,end1), src).group(1)