如何用Python中的任何内容替换字符串中的引号“和连字符?

时间:2009-10-09 20:25:08

标签: python regex

我想替换"-

只有""!让它消失。

s = re.sub(r'[^\w\s]', '', s)这会使所有标点符号消失,但我只想要那两个字符。感谢。

5 个答案:

答案 0 :(得分:6)

我很好奇你为什么要使用正则表达式来替换这个简单的字符串。我能看到的唯一优势是你可以用一行代码代替两行,但我个人认为替换方法比正则表达式更清楚。

字符串对象有replace方法 - str.replace(old, new[, count]),因此请使用replace("-", "")replace("\"", "")

请注意,我的语法可能有点偏离 - 我仍然是一个python初学者。

答案 1 :(得分:2)

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

答案 2 :(得分: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中这很快就会变得很麻烦,因为你必须明确地创建一个转换表。如果你正在进行大量的这种操作,这种努力是值得的。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

在Python 2.6中:

print 'Hey -- How are "you"?'.translate(None, '-"')

返回:

Hey  How are you?