Python替换多个字符串

问题:

我想使用.replace函数来替换多个字符串。
我目前有

string.replace("condition1", "")

但是想要有一些东西

string.replace("condition1", "").replace("condition2", "text")

虽然这不是很好的语法
这样做的正确方法是什么?像grep / regex一样,你可以做\1\2来替换字段到某些搜索字符串

回答:

这是一个简单的例子,应该使用正则表达式做的诀窍:

import re

rep = {"condition1": "", "condition2": "text"} # define desired replacements here

# use these three lines to do the replacement
rep = dict((re.escape(k), v) for k, v in rep.iteritems())
pattern = re.compile("|".join(rep.keys()))
text = pattern.sub(lambda m: rep[re.escape(m.group(0))], text)

例如:

>>> pattern.sub(lambda m: rep[re.escape(m.group(0))], "(condition1) and --condition2--")
'() and --text--'

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Python replace multiple strings

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

46 + = 55