删除特殊标点符号

Removing special punctuation

在我的文本中,我有一些特殊字符,例如 em 破折号和 guillemets(尖引号),这些字符不会通过省略 string.punctuation

来删除

从 Python 3 中的字符串中删除此类标点符号的正确方法是什么?

import string

mystring = ' »De fleste – digitale –'
mystring.translate(str.maketrans('', '', string.punctuation))
' »De fleste – digitale –'

试试这个:

import itertools as it

mystring = ' »De fleste – digitale –'
newstring = ''
mystring = newstring.join(it.filterfalse(lambda x: x in '»–', mystring))
print(mystring) #=> " De fleste  digitale"

这是一个简单的解决方案:

    mystring = ' »De fleste – digitale –'
    print(''.join(x for x in mystring if x not in ['»', '–', '?', '!', '«']))

您可以在 .join() 函数

的列表中添加您想要省略的任何内容