删除 Python 2.x 中的特定标点符号
我正在使用 Python v2.6,并且有一个字符串,其中包含许多我想删除的标点符号。现在我已经考虑使用 string.punctuation() 函数,但不幸的是,我想删除除句号和破折号之外的所有标点符号。总共,我只想删除 5 个标点符号 - ()\"'
有
什么建议吗?我希望这是最有效的方法。
谢谢
I'm using Python v2.6 and I have a string which contains a number of punctuation characters I'd like to strip out. Now I've looked at using the string.punctuation()
function but unfortunately, I want to strip out all punctuation characters except fullstops and dashes. In total, there are only a total of 5 punctuation marks I'd like to strip out - ()\"'
Any suggestions? I'd like this to be the most efficient way.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以使用
str.translate(table[, deletechars])
将table
设置为None
,这将导致deletechars
中的所有字符从字符串中删除:一些示例:
You can use
str.translate(table[, deletechars])
withtable
set toNone
, which will result in all characters fromdeletechars
being removed from the string:Some examples:
您可以列出所有不需要的字符:
然后您可以创建一个函数
strip_punctuation(s)
,如下所示:You could make a list of all the characters you don't want:
Then you could make a function
strip_punctuation(s)
like so:使用 string.translate:
或 re.sub:
但是
string.translate
似乎快了一个数量级:Using string.translate:
or re.sub:
but
string.translate
appears to be an order of magnitude faster:您可以创建一个包含所有要替换的字符的字典,并将它们替换为您选择的字符。
You can create a dict of all the characters you want to be replaced and replace them with char of your choice.
使用理解:
使用过滤器:
输出:
using comprehension:
using filter:
output: