본문 바로가기
코딩 연습/파이썬 기초(예제)

파이썬 특수문자 제거 정규식

by good4me 2023. 12. 6.

goodthings4me.tistory.com

파이썬 특수문자 제거

 

파이썬 특수문자 제거 정규식 코드. 파이썬으로 데이터 수집을 위한 크롤링 코딩을 작성하다 보면 특수문자 제거가 필요할 때가 많은데 이 경우에 사용하는 코드임

 

정규식 패턴 활용 특수문자 제거 코드

 

import re

def remove_special_characters(text):
    pattern = r'[^a-zA-Z0-9ㄱ-힣\s]'
    clean_text = re.sub(pattern, '', text)
    return clean_text

res = remove_special_characters('문자에 특수문자$&*가 있을.(_) 때|+')
print(res)
# 문자에 특수문자가 있을 때

 

위 함수에서 pattern의 값은 영문 대소문자, 숫자, 한글, 공백을 제외한 나머지 특수문자를 제거하는 정규 표현식이며, 한글에 대한 유니코드 문자로 대체하면 다음과 같음

pattern = r'[^a-zA-Z0-9\uAC00-\uD7A3\s]'

 

 

여기에서 영문 대소문자, 숫자 부분을 '\w'로 대체할 수 있으며,

pattern = r'[^\wㄱ-힣\s]' 또는
pattern = r'[^\w\uAC00-\uD7A3\s]'

 

이때, \w에는 영문 대소문자, 숫자, 밑줄(_)을 의미하기 때문에 이를 적용하고 함수를 실행하면, 결과값은 '문자에 특수문자가 있을_ 때'와 같이 출력됨

 

그리고, 패턴에 있는 각 요소를 설명하면 다음과 같습니다.

 

 

IT, 전자제품 선물

 

 

  • [] : 대괄호 안에 있는 문자는 패턴 내에서 일치시키려는 문자 집합
  • ^ : 대괄호 내에서 '^'가 첫 번째에 있으면 부정(negation) 의미(즉, 대괄호 안에 있는 문자는 제외하겠다는 뜻)
  • a-zA-Z0-9 : 알파벳 소문자(a-z), 대문자(A-Z), 숫자(0-9) 의미
  • \uAC00-\uD7A3 : 유니코드에서 한글의 범위, \uAC00는 '가', \uD7A3는 '힣'의 유니코드 포인트를 나타내며, 하이픈(-)은 범위를 나타냄
  • \s : 공백 문자(스페이스, 탭, 줄 바꿈 등) 의미
  • \w : 문자(알파벳)과 숫자, 밑줄(_) 즉, [a-zA-Z0-9_]의 의미
  • re.sub() : 문자열에서 패턴을 찾고 해당 패턴을 다른 문자열로 치환하는 정규 표현식 사용 함수

 

댓글