python的正则表达式作中文替换的一个例子
今天碰到一个需要中文替换的地方,开始直接用replace,后来发现不行,有些不应该被替换的也被替换了,后面改用正则表达式,也折腾了很久,这里特意记录一下.示例如下:
a = '测试中文测试/中文,中文*中文测试'
b = '中文'
要达到的效果是:
'测试中文测试/10,10*中文测试
由于是中文,直接用\b作界定符不行
于是先用如下方法:
p = re.compile('(?P<pre>^|[/,\+\-\*]+)%s(?P<after>$|[/,\+\-\*]+)'%b)
print p.sub('\g<pre>10\g<after>', a)
测试中文测试/10,中文*中文测试
第2个中文没有被替换到,后又换成下面这个方法:
p = re.compile('(?P<pre>^|[/,\+\-\*]+)%s(?=$|[/,\+\-\*,]+)'%b)
print p.sub('\g<pre>10', a)
测试中文测试/10,10*中文测试
搞定.
页:
[1]