파이썬에서 문자열에 포함된 알파벳과 숫자를 제외한 나머지 모든 문자(특수문자, 공백 등)를 제거해야 하는 경우가 종종 있습니다. 이럴 때 가장 효율적인 방법은 정규표현식(Regular Expression)을 활용하는 것입니다. 정규표현식 패턴을 정의한 뒤, 해당 패턴에 맞지 않는 문자들을 한 번에 걸러낼 수 있기 때문입니다.
정규표현식을 사용한 예제
아래 예제는 re 모듈의 sub() 함수를 사용하여 문자와 숫자를 제외한 모든 문자를 제거하는 과정을 보여줍니다.
import re
my_string = "python123:, .@! abc"
print("원본 문자열 : ")
print(my_string)
result = re.sub('[\W_]+', '', my_string)
print("변환된 문자열 :")
print(result)실행 결과
원본 문자열 : python123:, .@! abc 변환된 문자열 : python123abc
코드 설명
re모듈은 파이썬에서 정규표현식을 다루기 위한 기본 라이브러리로, 먼저 임포트해야 합니다.특수문자와 공백이 섞여 있는 샘플 문자열을 정의하고 콘솔에 출력합니다.
re.sub()함수에[\W_]+패턴을 적용합니다. 여기서\W는 영숫자(알파벳과 숫자)가 아닌 모든 문자를 의미하며, 밑줄(_)은\W에 포함되지 않으므로 별도로 추가해야 합니다.패턴에 일치하는 문자들은 빈 문자열(
'')로 대체되어 제거되고, 그 결과가 변수에 저장됩니다.최종 결과를 콘솔에 출력하여 확인합니다.
참고 사항
만약 한글처럼 유니코드 문자도 함께 남기고 싶다면, [^\w가-힣_]와 같이 패턴을 확장하거나 [^a-zA-Z0-9가-힣] 형태의 부정 문자 클래스를 직접 지정하는 방법도 고려할 수 있습니다.