读书人

python的正则表达式做中文替换的一个例

发布时间: 2012-09-11 10:49:03 作者: rapoo

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*中文测试
?搞定.

读书人网 >perl python

热点推荐