Skip to main content
 首页 » 编程设计

Python之从文本中删除一些标点符号

2025年05月04日17落叶无声

我希望 Python 只从字符串中删除一些标点符号,假设我想删除除 '@' 之外的所有标点符号

import string 
remove = dict.fromkeys(map(ord, '\n ' + string.punctuation)) 
sample = 'The quick brown fox, like, totally jumped, @man!' 
sample.translate(remove) 

这里的输出是

The quick brown fox like totally jumped man 

但是我想要的是这样的

The quick brown fox like totally jumped @man 

有没有一种方法可以有选择地从文本中删除标点符号,同时保留我们想要在文本中完整保留的标点符号?

请您参考如下方法:

str.punctuation包含所有标点符号。从中删除 @ 。然后,每当您获得该标点符号字符串时,用 '' 替换。

>>> import re 
>>> a = string.punctuation.replace('@','') 
>>> re.sub(r'[{}]'.format(a),'','The quick brown fox, like, totally jumped, @man!') 
'The quick brown fox like totally jumped @man'