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에는 영문 대소문자, 숫자, 밑줄(_)을 의미하기 때문에 이를 적용하고 함수를 실행하면, 결과값은 '문자에 특수문자가 있을_ 때'와 같이 출력됨
그리고, 패턴에 있는 각 요소를 설명하면 다음과 같습니다.
- [] : 대괄호 안에 있는 문자는 패턴 내에서 일치시키려는 문자 집합
- ^ : 대괄호 내에서 '^'가 첫 번째에 있으면 부정(negation) 의미(즉, 대괄호 안에 있는 문자는 제외하겠다는 뜻)
- a-zA-Z0-9 : 알파벳 소문자(a-z), 대문자(A-Z), 숫자(0-9) 의미
- \uAC00-\uD7A3 : 유니코드에서 한글의 범위, \uAC00는 '가', \uD7A3는 '힣'의 유니코드 포인트를 나타내며, 하이픈(-)은 범위를 나타냄
- \s : 공백 문자(스페이스, 탭, 줄 바꿈 등) 의미
- \w : 문자(알파벳)과 숫자, 밑줄(_) 즉, [a-zA-Z0-9_]의 의미
- re.sub() : 문자열에서 패턴을 찾고 해당 패턴을 다른 문자열로 치환하는 정규 표현식 사용 함수
'코딩 연습 > 파이썬 기초(예제)' 카테고리의 다른 글
파이썬에서 오라클 데이터베이스 연결 후 쿼리 사용하기 (0) | 2023.12.22 |
---|---|
파이썬 함수, 클래스, 속성 비공개, 상속 등 알아보기 (0) | 2023.12.07 |
파이썬 입출력 - input(), open() 함수 사용 방법 (0) | 2023.12.04 |
파이썬 제어문 종류 - 조건문과 반복문, 연습문제 (0) | 2023.12.04 |
파이썬 연산자, 변수, 자료형 알아보기 (0) | 2023.12.02 |
댓글