在我的文本中,我有一些特殊字符,如em破折号和guilemet(尖引号(,这些字符不会通过省略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()
函数内的列表中添加任何想要省略的内容