我想替换"
和-
只有""
!让它消失。
s = re.sub(r'[^\w\s]', '', s)
这会使所有标点符号消失,但我只想要那两个字符。感谢。
答案 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?