python 的re模块(即正则表达式模块)默认似乎是用Unicode处理,因此,如果目标文件的编码为GBK(gb2312或cp936,如双狐图形数据的格式)则其匹配结果为空。即下列的语句将得不到任何匹配结果。
line=inputFile.readline()
re.search(r'^Layer\sM\s'+'中文匹配词',line):
因此,需要对中文匹配词进行编码转换,即改写上面的语句为:
keyword=(u'中文匹配词').encode('cp936')
re.search(r'^Layer\sM\s'+keyword,line):