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팩구입
ㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹ
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: 공백 문자를 나타낸다.
특수문자 제거 관련 글 더보기
▷ 이모지(♠, ★ 등) 제거하는 방법
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[Python] 파이썬 웹 크롤링 - 스크래핑 관련 연습 코드 [네이버 날씨 & 뉴스, 오늘의 영어지문 등 가져오기] (0) | 2021.06.29 |
---|---|
[Python] 파이썬 웹 크롤링 - 스크래핑 관련 유튜브 강의[나도코딩] 연습 코드 정리 (1) | 2021.06.27 |
[Python] 폴더(디렉토리) 만들기 - mkdir() or makedirs() (0) | 2021.06.22 |
파이썬 실천 기술 #06 - 내장함수와 특수메서드(스페셜 메서드) (0) | 2021.06.12 |
파이썬 실천 기술 #05 - 이름공간, 스코프 (0) | 2021.06.03 |
댓글