Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 문자열에서 알파벳 문자만 추출하는 방법

데이터에는 영문자, 숫자, 특수문자가 섞여 있을 수 있습니다. 이러한 문자열에서 순수하게 알파벳 문자만 추출하고 싶다면 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()를 사용하거나 정규표현식 패턴을 확장해야 한다는 점도 기억해 두면 좋습니다.