2012-09-15 52 views
2

我想要拆分句子的話轉換成標籤(要在Mongodb一個簡單的全文搜索),我不想保存逗號或冒號:如何拆分句子,讓只有ASCII字符

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

我已經試過這樣:

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

我想刪除所有「非字母字符」,有phrase.replace(",", " ")但僅替換一個字符,所以我怎麼使用正則表達式替換爲?像re.remove(pattern, phrase)這樣的東西,是否存在一個循環,這是否會成爲服務器的繁重工作?

回答

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

啊!!!那是我需要的!因爲我還會使用unicode字符(阿拉伯語,法語,tifinagh(amazigh)...) –

2

如果你在非單詞字符\W上分開,那麼這些單詞只能包含一個單詞的數組。

+0

,但我會處理Unicode字符,這將包括他們? –

+1

只要你有LOCALE&UNICODE正確設置,那麼是的 –

+0

啊!因爲我認爲那\ W包括法國特殊字符像éè... –