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

Python 정규표현식으로 문자와 숫자를 제외한 모든 특수문자 제거하는 방법

파이썬에서 문자열에 포함된 알파벳과 숫자를 제외한 나머지 모든 문자(특수문자, 공백 등)를 제거해야 하는 경우가 종종 있습니다. 이럴 때 가장 효율적인 방법은 정규표현식(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가-힣] 형태의 부정 문자 클래스를 직접 지정하는 방법도 고려할 수 있습니다.