Python中的字符串替换操作示例
字符串的替换(interpolation),可以使用string.Template,也可以使用标准字符串的拼接.
string.Template标示替换的字符,使用"$"符号,或在字符串内,使用"${}";调用时使用string.substitute(dict)函数.
标准字符串拼接,使用"%()s"的符号,调用时,使用string%dict方法.
两者都可以进行字符的替换.
代码:
#-*-coding:utf-8-*-
importstring
values={'var':'foo'}
tem=string.Template('''''
Variable:$var
Escape:$$
Variableintext:${var}iable
''')
print'TEMPLATE:',tem.substitute(values)
str='''''
Variable:%(var)s
Escape:%%
Variableintext:%(var)siable
'''
print'INTERPOLATION:',str%values
输出:
TEMPLATE: Variable:foo Escape:$ Variableintext:fooiable INTERPOLATION: Variable:foo Escape:% Variableintext:fooiable
连续替换(replace)的正则表达式(re)
字符串连续替换,可以连续使用replace,也可以使用正则表达式.
正则表达式,通过字典的样式,key为待替换,value为替换成,进行一次替换即可.
代码
#-*-coding:utf-8-*-
importre
my_str="(condition1)and--condition2--"
printmy_str.replace("condition1","").replace("condition2","text")
rep={"condition1":"","condition2":"text"}
rep=dict((re.escape(k),v)fork,vinrep.iteritems())
pattern=re.compile("|".join(rep.keys()))
my_str=pattern.sub(lambdam:rep[re.escape(m.group(0))],my_str)
printmy_str
输出:
()and--text-- ()and--text--