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--