284354749 发表于 2017-5-8 12:51:16

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]
查看完整版本: python的正则表达式作中文替换的一个例子