如何用空字符串替换Python中字符串里的双引号和单引号?
我想把 "
和 -
替换掉。
也就是说,我想把它们变成 ""
什么都不留!让它们消失。
s = re.sub(r'[^\w\s]', '', s)
这个代码会把所有的标点符号都去掉,但我只想去掉这两个字符。谢谢。
5 个回答
在Python 2.6和2.7版本中,你可以使用一个叫做translate()
的方法来处理字符串。当你把None
作为第一个参数传进去时,这个方法会有个特别的功能,就是可以删除第二个参数中所有出现的字符。
>>> s = 'No- dashes or "quotes"'
>>> s.translate(None, '"-')
'No dashes or quotes'
根据SilentGhost的评论,这在2.6以下和3.0以上的版本中会变得比较麻烦,因为你需要手动创建一个翻译表。如果你频繁进行这种操作,那样的努力才会显得值得。
在编程中,有时候我们会遇到一些问题,想要找到解决办法。比如说,当你在写代码的时候,可能会出现错误或者不明白某些功能是怎么用的。这时候,StackOverflow 就是一个很好的地方,你可以在这里提问,或者查找别人遇到过的类似问题和解决方案。
在这个平台上,很多程序员会分享他们的经验和知识,帮助其他人解决问题。你可以看到很多不同的回答,有的可能很简单,有的则比较复杂。重要的是,大家都在努力让编程变得更容易。
如果你在学习编程,遇到困难,不妨去看看 StackOverflow,那里有很多有用的信息和资源,可以帮助你更好地理解编程的世界。
re.sub('["-]+', '', s)
我很好奇你为什么要用正则表达式来做这么简单的字符串替换。我能想到的唯一好处就是你可以用一行代码完成,而不是两行。不过我个人觉得,对于这种情况,使用替换方法比用正则表达式要更清晰。
字符串对象有一个叫做 replace
的方法 - str.replace(old, new[, count])
,所以可以用 replace("-", "")
和 replace("\"", "")
来替换。
注意,我的语法可能有点不太对 - 我还是个Python初学者。