如何用空字符串替换Python中字符串里的双引号和单引号?

1 投票
5 回答
6379 浏览
提问于 2025-04-15 14:57

我想把 "- 替换掉。

也就是说,我想把它们变成 "" 什么都不留!让它们消失。

s = re.sub(r'[^\w\s]', '', s) 这个代码会把所有的标点符号都去掉,但我只想去掉这两个字符。谢谢。

5 个回答

2

在Python 2.6和2.7版本中,你可以使用一个叫做translate()的方法来处理字符串。当你把None作为第一个参数传进去时,这个方法会有个特别的功能,就是可以删除第二个参数中所有出现的字符。

>>> s = 'No- dashes or "quotes"'
>>> s.translate(None, '"-')
'No dashes or quotes'

根据SilentGhost的评论,这在2.6以下和3.0以上的版本中会变得比较麻烦,因为你需要手动创建一个翻译表。如果你频繁进行这种操作,那样的努力才会显得值得。

2

在编程中,有时候我们会遇到一些问题,想要找到解决办法。比如说,当你在写代码的时候,可能会出现错误或者不明白某些功能是怎么用的。这时候,StackOverflow 就是一个很好的地方,你可以在这里提问,或者查找别人遇到过的类似问题和解决方案。

在这个平台上,很多程序员会分享他们的经验和知识,帮助其他人解决问题。你可以看到很多不同的回答,有的可能很简单,有的则比较复杂。重要的是,大家都在努力让编程变得更容易。

如果你在学习编程,遇到困难,不妨去看看 StackOverflow,那里有很多有用的信息和资源,可以帮助你更好地理解编程的世界。

re.sub('["-]+', '', s)
6

我很好奇你为什么要用正则表达式来做这么简单的字符串替换。我能想到的唯一好处就是你可以用一行代码完成,而不是两行。不过我个人觉得,对于这种情况,使用替换方法比用正则表达式要更清晰。

字符串对象有一个叫做 replace 的方法 - str.replace(old, new[, count]),所以可以用 replace("-", "")replace("\"", "") 来替换。

注意,我的语法可能有点不太对 - 我还是个Python初学者。

撰写回答