데이터에는 영문자, 숫자, 특수문자가 섞여 있을 수 있습니다. 이러한 문자열에서 순수하게 알파벳 문자만 추출하고 싶다면 Python에서 제공하는 다양한 방법을 활용할 수 있습니다. 이 글에서는 가장 많이 사용되는 두 가지 방법인 isalpha() 함수와 정규표현식(Regular Expression)을 소개합니다.
방법 1: isalpha() 함수 활용
isalpha() 함수는 주어진 문자가 알파벳인지 여부를 판별합니다. for 반복문과 함께 사용하면 문자열의 각 문자를 하나씩 확인하면서 알파벳에 해당하는 문자만 걸러낼 수 있습니다. 이후 join() 메서드를 통해 유효한 문자들만 결과로 결합합니다.
예제 코드
stringA = "Qwer34^&t%y"
# 주어진 문자열
print("Given string : ", stringA)
# 알파벳 문자 추출
res = ""
for i in stringA:
if i.isalpha():
res = "".join([res, i])
# 결과 출력
print("Result: ", res)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Given string : Qwer34^&t%y Result: Qwerty
방법 2: 정규표현식(re 모듈) 활용
정규표현식 모듈인 re를 사용하면 더 간결하게 처리할 수 있습니다. findall() 함수에 알파벳만 매칭하는 패턴인 [a-zA-Z]+ 를 지정하면, 문자열에서 알파벳에 해당하는 부분만 리스트로 반환받을 수 있습니다. 이를 join()으로 합치면 원하는 결과를 얻습니다.
예제 코드
import re
stringA = "Qwer34^&t%y"
# 주어진 문자열
print("Given string : ", stringA)
# 정규표현식으로 알파벳 추출
res = "".join(re.findall("[a-zA-Z]+", stringA))
# 결과 출력
print("Result: ", res)실행 결과
위 코드를 실행하면 동일한 결과가 출력됩니다.
Given string : Qwer34^&t%y Result: Qwerty
정리
두 방법 모두 동일한 결과를 제공하지만 상황에 따라 선택 기준이 다릅니다. 간단한 조건 검사에는 isalpha()가 직관적이며, 복잡한 패턴 매칭이나 대량 데이터 처리에는 정규표현식이 유연하고 효율적입니다. 참고로 한글 등 유니코드 문자까지 포함하려면 [a-zA-Z] 대신 isalpha()를 사용하거나 정규표현식 패턴을 확장해야 한다는 점도 기억해 두면 좋습니다.