파이썬에서 문자열이 소문자만 포함하고 있는지 확인하는 방법은 크게 두 가지가 있습니다. 첫 번째는 islower() 메서드를 사용하는 방법이고, 두 번째는 정규 표현식(regex)을 활용하는 방법입니다.
1. islower() 메서드 사용하기
islower() 메서드는 문자열 내의 모든 알파벳 문자가 소문자인지 검사합니다. 대소문자를 구분하는 문자 중 하나라도 대문자가 포함되어 있으면 False를 반환합니다.
print('Hello world'.islower())
print('hello world'.islower())
실행 결과:
False True
'Hello world'는 대문자 'H'가 포함되어 있어 False가 반환되고, 모든 문자가 소문자인 'hello world'는 True가 반환됩니다.
2. 정규 표현식(Regex) 사용하기
정규 표현식을 사용하면 더욱 엄격한 조건 검사가 가능합니다. 오직 소문자만 매칭하려면 re.match() 함수에 정규식 패턴 "^[a-z]+$"를 전달하면 됩니다.
import re
print(bool(re.match('^[a-z]+$', '123abc')))
print(bool(re.match('^[a-z]+$', 'abc')))
실행 결과:
False True
'123abc'는 숫자가 포함되어 있어 False가 반환되고, 순수하게 소문자로만 이루어진 'abc'는 True가 반환됩니다.
두 방법의 차이점
islower()는 문자열에 숫자나 공백이 포함되어 있더라도 알파벳 문자가 모두 소문자이기만 하면 True를 반환합니다. 반면 정규 표현식 "^[a-z]+$"는 숫자, 공백, 특수문자가 하나라도 섞여 있으면 False를 반환합니다. 따라서 입력값에 순수한 소문자 알파벳만 허용해야 하는 유효성 검사에는 정규 표현식 방식이 더 적합합니다.