2013-10-09 64 views
0

爲什麼.strip()在使用時不能刪除標點,如下所示,translate()的使用方法?使用Python的.strip剝離標點()

s = 'Hello world! Good-bye world?' 
s = s.strip(string.punctuation + string.whitespace).lower() 

給出:'hello world! good-bye world'

s = translate(None, string.punctuation) 

給出:hello world goodbye world

+3

閱讀文檔;-) Strip僅適用於字符串的末尾,而不適用於字符串內部。 –

回答

0

如果你想有一個良好的語言工具,你不妨使用NLTK。對於這樣的事情非常有效,如果你想提高你可以使用標記器。

0

有以下線程這個話題商量好了:我發現有Best way to strip punctuation from a string in Python

一個解決方案:

re.sub('[%s]'%(re.escape(string.punctuation)),' ', s1) 

如果你想用什麼來代替 - 壓縮標點符號然後做:

re.sub('[%s]'%(re.escape(string.punctuation)),'', s1) 

我們建立了一個小心逃避標點符號的字符類。然後將它們中的任何一個與空格字符分開。