본문 바로가기
코딩 연습/코딩배우기

[Python] 문자열 내 특수문자 제거 - replace(), isalnum(), join() 등 사용

by good4me 2021. 6. 23.

goodthings4me.tistory.com

 

파이썬에서 특수문자 제거하는 방법

 

파이썬에서 추출한 문자열 등으로 디렉토리(폴더)나 파일명 생성 시 특수문자가 있을 경우 에러 발생함
(파일 이름에는 \ / : * ? " < > | 문자 사용 불가)

이 문제를 해결하는 4가지 방법 (단, 정규표현식 방법은 제외함) 

## 방법 1.
title = '라이프사이즈900*6001팩 - 구입'
special_char = '\/:*?"<>|'
for c in special_char:
    if c in title:
        print(title.find(c), c)
        title = title.replace(c, 'x')
print(title)
# 라이프사이즈900x6001팩 - 구입


## 방법 2.
specialChar = '!@#$%^&*()_{}[]\|;:''"<>?/'
title2 = '[라이프사이즈]900*6001팩 - 구입?'
for i in range(len(specialChar)):
    title2 = title2.replace(specialChar[i], '')
print(title2)
# 라이프사이즈9006001팩 - 구입


## 방법 3.
title2 = ''.join(c for c in title2 if c not in specialChar)
print(title2)
# 라이프사이즈9006001팩 - 구입


## 방법 4.
# isalnum() 함수(문자열의 모든 요소가 문자 또는 숫자인 경우 True) - 단, 공백도 없어짐
title3 = '[라이프사이즈] <900 * 6001> 팩 - 구입?'
ntitle = ''
for c in title3:
    if c.isalnum():
        ntitle += c
print(ntitle)
# 라이프사이즈9006001팩구입

 

good4me.co.kr

 

ㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹ

re.sub(r"[^\uAC00-\uD7A30-9a-zA-Z\s]", "", title) 의미

위 정규 표현식은 "한글, 영문 대소문자, 숫자, 공백을 제외한 모든 문자를 제거"한다.

  • r"[^\uAC00-\uD7A30-9a-zA-Z\s]": 이 부분은 정규 표현식의 패턴을 나타낸다.
  • [...]: 대괄호 내의 문자들 중 하나와 매치됨을 나타낸다.
  • ^: 대괄호 내에서 사용되면 해당 패턴이 아닌 문자들과 매치됨을 의미한다.
  • \uAC00-\uD7A3: 한글 유니코드 범위. 한글의 유니코드는 이 범위에 속한다.
  • 0-9: 숫자 범위이다.
  • a-zA-Z: 영문 대소문자 범위이다.
  • \s: 공백 문자를 나타낸다.

 

특수문자 제거 관련 글 더보기

이모지(♠, ★ 등) 제거하는 방법

 

 

블로그 글 내용 저장 중 이모지 '\U0001f970' 에러 발생 (파이썬)

블로그 글 내용을 파이썬으로 스크래핑(크롤링)하여 저장 중에 발생한 아래와 같은 에러 메시지( UnicodeEncodeError: 'cp949' codec can't encode character '\U0001f970' in position 1806: illegal multibyte s..

goodthings4me.tistory.com

 

 

네이버 쇼핑 아이디별 등록 상품 추출하는 법(파이썬 script 태그 스크래핑 가이드)

네이버 쇼핑의 각 판매자 사이트에 들어가 보면 상품 리스트가 있고, 각 상품에 대한 제목, 가격, 리뷰수, 평점 등의 데이터가 있다. 이 부분을 확인해보면 파이썬 requests로 네이버쇼핑 아이디별

goodthings4me.tistory.com

 

 

 

 

 

 

댓글