728x90
AttributeError: 'NoneType' object has no attribute 'group'
오류는 주로 정규표현식 사용 시 re.match()
또는 re.search()
함수가 아무 결과도 찾지 못해 None
을 반환했는데, 바로 .group()
메서드를 호출할 때 발생합니다.
이 오류는 검색 결과가 없을 수 있음을 고려하지 않고 group()
을 호출하는 경우 발생하므로, 결과가 None
이 아닌지 확인하는 조건문이 필요합니다.
● 오류 발생 예시
import re
text = "Python 3.10"
match = re.match(r"Java (\d+)", text)
print(match.group(1))
위 코드는 re.match
가 아무 결과도 찾지 못하므로 match
는 None
이 되고, match.group()
호출 시 오류가 발생합니다.
● 주요 원인
- 정규표현식 검색 결과가 없는데도
group()
호출 - 정규식 패턴 불일치
None
객체에 메서드 호출 시도
● 해결 방법
if match:
조건문으로None
여부 확인 후group()
호출- 패턴이 데이터에 정확히 매칭되는지 확인
- 예외 처리를 통한 안전한 실행
● 예시 코드 (정상 처리)
import re
text = "Python 3.10"
match = re.match(r"Java (\d+)", text)
if match:
print(match.group(1))
else:
print("패턴이 일치하지 않습니다.")
● 결론
정규표현식 검색 결과가 없을 수 있으므로, 항상 None
체크 후 .group()
을 호출해야 안전합니다. 'NoneType'
객체에 메서드를 호출하는 실수는 의외로 흔하며, 조건문이나 예외 처리를 통해 방지할 수 있습니다.
728x90