파이썬 유니코드 문자열에서 특수문자 가려내기..

cleol의 이미지

파이썬으로 프로그램 중입니다. unicode('울라불라~~') 식으로 만든 유니코드 문자열에서 한글, 숫자, 알파벳이 아닌 모든 문자를 삭제해야합니다. 어찌해야하나요...? 아스키 문자열이면 쉽게 처리하겠는데 유니코드는 어찌 처리해야하는 건지 도통 모르겠습니다. 분명히 특정 영역에 특수 문자나 기호가 모여있을 거 같은데...음...어찌해야하나요?

랜덤여신의 이미지

cleol wrote:
파이썬으로 프로그램 중입니다. unicode('울라불라~~') 식으로 만든 유니코드 문자열에서 한글, 숫자, 알파벳이 아닌 모든 문자를 삭제해야합니다. 어찌해야하나요...? 아스키 문자열이면 쉽게 처리하겠는데 유니코드는 어찌 처리해야하는 건지 도통 모르겠습니다. 분명히 특정 영역에 특수 문자나 기호가 모여있을 거 같은데...음...어찌해야하나요?

import re
str = u'어쩌구 저쩌구 어쩌구 저쩌구 $@%^#^#%%#%'
str = re.sub('[^가-힝0-9a-zA-Z\\s]', '', str)

ps: 공백도 제거하고 싶으시면 패턴에서 \\s 를 없애세요.
monpetit의 이미지

인클루드 wrote:
import re
str = u'어쩌구 저쩌구 어쩌구 저쩌구 $@%^#^#%%#%'
str = re.sub('[^가-힝0-9a-zA-Z\\s]', '', str)

ps: 공백도 제거하고 싶으시면 패턴에서 \\s 를 없애세요.

가-힣의 오타가 아닐까 생각됩니다만...
랜덤여신의 이미지

monpetit wrote:
인클루드 wrote:
import re
str = u'어쩌구 저쩌구 어쩌구 저쩌구 $@%^#^#%%#%'
str = re.sub('[^가-힝0-9a-zA-Z\\s]', '', str)

ps: 공백도 제거하고 싶으시면 패턴에서 \\s 를 없애세요.

가-ㅤㅎㅣㅎ의 오타가 아닐까 생각됩니다만...

네, 맞습니다. 그런데 KLDP BBS 가 euc-kr 이라 불여우에서 'ㅤㅎㅣㅎ' 이라고 쓰면 IE 에서는 ㅎ+ㅣ+ㅎ 이렇게 깨지더군요. 그래서 그나마 차선책으로 골라 봤었습니다.
:oops:
따라서, ㅎ+ㅣ+ㅎ 이 더 옳은 표현입니다.