isalnum() 메서드를 사용한 방법
파이썬의 문자열(String) 클래스에는 isalnum()이라는 메서드가 내장되어 있습니다. 이 메서드를 문자열에 호출하면 해당 문자열이 오직 영숫자(alphanumeric)로만 구성되어 있는지 여부를 알려줍니다. 문자열 전체가 알파벳과 숫자만 포함하면 True를 반환하고, 특수문자나 공백 등이 하나라도 포함되어 있으면 False를 반환합니다.
사용 방법은 다음과 같습니다.
>>> '123abc'.isalnum() True >>> '123#$%abc'.isalnum() False
위 예제에서 볼 수 있듯이, '123abc'는 숫자와 알파벳으로만 이루어져 있으므로 True가 반환되고, 특수문자('#', '$', '%')가 포함된 '123#$%abc'는 False가 반환됩니다.
정규표현식(Regex)을 사용한 방법
같은 결과를 얻기 위해 정규표현식을 활용할 수도 있습니다. 영숫자를 매칭하기 위해서는 re.match(regex, string) 함수를 다음과 같은 패턴과 함께 호출하면 됩니다.
정규식 패턴: "^[a-zA-Z0-9]+$"
- ^: 문자열의 시작
- [a-zA-Z0-9]: 알파벳 대소문자 및 숫자
- +: 하나 이상의 문자 반복
- $: 문자열의 끝
>>> bool(re.match('^[a-zA-Z0-9]+$', '123abc'))
True
>>> bool(re.match('^[a-zA-Z0-9]+$', '123#$%abc'))
Falsebool()로 감싸는 이유
re.match()는 매칭 결과를 객체(object) 형태로 반환합니다. 매칭에 성공하면 Match 객체를 반환하고, 실패하면 None을 반환하는데, 이를 명확하게 참/거짓 값으로 확인하기 위해서는 bool() 함수를 사용해 불리언 타입으로 변환해야 합니다.
두 방법의 비교
isalnum() 메서드는 간결하고 직관적이어서 대부분의 경우 가장 좋은 선택입니다. 반면 정규표현식 방식은 검증 조건을 더 세밀하게 조정해야 할 때 유용합니다. 예를 들어 특정 길이 제한을 두거나, 일부 문자만 허용하는 등의 커스터마이징이 필요할 경우 정규식 패턴을 수정하여 손쉽게 확장할 수 있습니다.