파이썬에서 문자열이 오직 공백 문자(스페이스, 탭, 줄 바꿈 등)로만 구성되어 있는지 확인해야 하는 경우가 종종 있습니다. 예를 들어 사용자 입력을 검증하거나 데이터를 정리할 때 유용하게 쓰입니다. 이를 확인하는 대표적인 방법으로는 isspace() 메서드와 정규표현식(regex), 두 가지가 있습니다.
방법 1: isspace() 메서드 사용
isspace()는 문자열이 비어 있지 않으면서 모든 문자가 공백 문자일 때 True를 반환하고, 그렇지 않으면 False를 반환합니다. 단, 빈 문자열("")에는 False를 반환한다는 점에 유의하세요.
예제
print('Hello world'.isspace())
print(' '.isspace())출력 결과
False True
'Hello world'에는 공백이 아닌 알파벳 문자가 포함되어 있어 False가 출력되고, 스페이스로만 이루어진 문자열은 True가 출력됩니다.
방법 2: 정규표현식(re 모듈) 사용
정규표현식을 활용할 수도 있습니다. 공백 문자를 의미하는 메타 문자 \s를 사용해 re.match() 함수로 패턴을 검사하면 됩니다. "^\s+$" 또는 "^\s*$" 패턴을 사용하면 문자열 전체가 공백으로만 이루어졌는지 확인할 수 있습니다.
예제
import re
print(bool(re.match('^\s+$', ' abc')))
print(bool(re.match('^\s+$', ' ')))출력 결과
False True
문자열 중간에 일반 문자가 포함되어 있으면 매칭에 실패해 False가 되고, 공백뿐인 문자열은 True가 됩니다. bool()로 감싸는 이유는 매칭 객체(Match 객체)를 명시적으로 불리언 값으로 변환하기 위해서입니다.
정리
간단한 검사라면 isspace() 메서드가 가장 직관적이고 효율적입니다. 반면 다른 조건과 결합한 복잡한 패턴 검사가 필요하다면 정규표현식이 더 유연한 대안이 됩니다. 상황에 맞게 두 방법을 선택해 사용하시기 바랍니다.