使用Python的.strip()剥离标点符号

时间:2013-10-09 23:32:18

标签: python python-2.7

为什么.strip()在使用时不会删除标点符号,translate()的方式如何?

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

2 个答案:

答案 0 :(得分:0)

如果你想要一个好的语言工具,你也可以使用nltk。对于这样的事情非常有效,如果你想改进,你可以使用标记器。

答案 1 :(得分: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)

我们建立了一个小心类,小心翼翼地逃避标点符号。然后使用空格字符对其中任何一个进行子化。