/ Python

python正则匹配非中文

今天弄了一套国外的商城程序看了下,总体感觉很好,就是汉化包不太爽,他的汉化形式是类似

$_['IP_Address'] = 'IP地址(IP Address)';

这样的,中文后面跟一个括号里面是英文,所以我想用个程序把括号以及里面的英文去掉。

首先实现正则替换,核心代码如下:

p = re.compile(ur"([a-zA-Z\u4e00-\u9fa5]+?)\s*?([^\u4e00-\u9fa5]*)",re.M) #[a-zA-Z\u4e00-\u9fa5]是匹配前面的汉语翻译 #[^\u4e00-\u9fa5]则是确保后面匹配的括号中没有中文 text = p.sub(ur"\1",text.decode('utf8')) #因为要替换的字符串中包含中文,所以得先把text编码转为utf-8

下面要做的是遍历所有文件夹,把所有汉化文件都正则替换下。核心代码如下:

def traverse(path, depth=0): if(isdir(path)):#如果是文件夹,则把该文件夹下的所有文件夹递归处理 for item in listdir(path): traverse(path+'/'+item, depth+1) else: r(path)#如果不是文件夹,则用正则处理文件中的内容

调用方式很简单:

if name == 'main': traverse('/home/zh-CN') print "OK"

搞定~~

python正则匹配非中文
Share this