2012-09-15 2 views
2

은 내가 (Mongodb에서 간단한 전체 텍스트 검색을 할 수 있도록하기 위해) 태그에 단어를 변환하는 문장을 분할 할, 그리고 난 쉼표 또는 콜론 저장할 해달라고 :방법 분할 문장 및하자 ASCII 문자 만

phrase = "hello, this is a simple description!" 
pattern = "[\"\'\!\?\:\,\;]" 

내가 해봤이 :이 phrase.replace(",", " ")하지만, 단 하나 개의 문자를 대체하는, 그래서 함께 정규 표현식을 사용하여 어떻게 대체

re.split(pattern, phrase) 
Out[1]: ['hello', ' this is a simple description', ''] # as you can see, i've always blank characters. 

내가 모든 "비 문자 문자"를 제거하려면? re.remove(pattern, phrase) 같은 sssomething, 거기에 루프가, 이것은 서버에 무거운 작품이됩니까?

답변

4

non-regex 솔루션 : 사용 strip(),하지만 모든 비 문자 문자를 전달해야합니다. 같은

뭔가 : strip(',!*&^%#$;:+')

In [12]: phrase = "hello, this is: a simple; description!!" 
In [13]: [x.strip(',!*&^%#$;:+') for x in phrase.split()] 

Out[13]: ['hello', 'this', 'is', 'a', 'simple', 'description'] 
+0

아! 그게 내가 필요한거야! 유니 코드 문자 (아랍어, 프랑스어, tifinagh (amazigh) ...)도 사용하기 때문에 –

2

단어가 아닌 문자 \W을 분리하면 단어 배열 만 남게됩니다.

+0

하지만 난 유니 코드 문자를 다루는 것, 이것이 그들을 포함? –

+1

LOCALE 및 UNICODE를 올바르게 설정 한 경우 예 –

+0

아! 왜냐하면 나는 \ W가 é è와 같은 프랑스어 특수 문자를 포함한다고 생각했기 때문에 ... –