데이터를 다루다보면, 문자열을 기호에 맞게 처리해야 하는 경우가 종종 발생합니다.
파이썬 모듈 중에서 문자열이나 text 처리를 쉽게 할 수 있는 re 모듈을 이용하여 원하는 문자만 추출하는 추출하는 방법을 배워보도록 하겠습니다.
※ 레퍼런스에 여러 가지 자료를 잘 정리한 블로그와 웹사이트를 올려놓았으니 궁금하신 분들은 찾아보시기 바랍니다!
한글만 추출하기
- re 패턴 : [^ㄱ-|가-힣+] => 한글+띄어쓰기 제외한 글자 패턴
import re
def test(s):
hangul = re.compile('[^ ㄱ-ㅣ가-힣+]') # 한글과 띄어쓰기를 제외한 모든 글자
# hangul = re.compile('[^ \u3131-\u3163\uac00-\ud7a3]+') # 위와 동일
result = hangul.sub('', s) # 한글과 띄어쓰기를 제외한 모든 부분을 제거
retunr(result)
s='韓子는 싫고, 한글은 nice하다. English 쵝오 -_-ㅋㅑㅋㅑ ./?!'
#<-------결과창------->#
# 문자열 출력
test(s)
'는 싫고 한글은 하다 쵝오 ㅋㅑㅋㅑ '
# 리스트 출력
list(test(s))
['는', ' ', '싫', '고', ' ', '한', '글', '은', ' ', '하', '다', ' ', ' ', '쵝', '오', ' ', 'ㅋ', 'ㅑ', 'ㅋ', 'ㅑ', ' ']
숫자 다루기 (숫자만 추출, 숫자 제거)
- re 패턴 : '\d+'
## 숫자 다루기
import re
text = '비트코인, 이게 머선129'
num = re.compile(r'\d+')
# 숫자 제거
result01 = num.sub('',text)
print(result01)
# 결과
비트코인, 이게 머선
# 숫자만 추출
result02 = num.findall(text)
print(result02)
# 결과
['129']
특수문자 다루기
- re 패턴 : [^ A-Za-z0-9가-힣+]
## 특수문자 다루기
import re
text = ':)bitcoin is real? >.<,'
special = re.compile(r'[^ A-Za-z0-9가-힣+]')
# 특수문자만 제거
result = special.sub('',text)
print(result)
# 결과
bitcoin is real
# 특수문자만 찾기
result = special.findall(text)
print(''.join(result))
# 결과
:)?>.<,
References
- 영어 Text 전처리 및 유용한 Re 설명 자료 [All I need is data]
- 정규식을 사용하여 한글만 가져오기 [Gun's Knowledge Base]
- 예제로 배우는 파이썬 프로그래밍 - 정규 표현식 Regex
반응형
'Programming > Python' 카테고리의 다른 글
파이썬 collections 컨테이너형 자료 모듈 (0) | 2021.06.13 |
---|---|
[파이썬] 웹 url 호출하기 requests post/get (1) | 2021.06.09 |
[Python] 파이썬 이미지 사이즈 분류하기 (0) | 2021.06.02 |
[Python] 파이썬 영화 사이트 (씨네21) 크롤링 2 (0) | 2021.06.01 |
[Python] 파이썬 영화 사이트 (씨네21) 크롤링 (1) | 2021.05.31 |
댓글