본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 111. AttributeError - 'NoneType' object has no attribute 'group'

by about_IT 2025. 6. 1.
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가 아무 결과도 찾지 못하므로 matchNone이 되고, 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