# tested under python3.4
def convert(s):
s = s.strip('') # 把'长'变成'957f'
s = bytes(r'\u' + s, 'ascii') # 把'957f'转换成b'\\u957f'
return s.decode('unicode_escape') # 调用bytes对象的decode,encoding用unicode_escape,把b'\\u957f'从unicode转义编码解码成unicode的'长'。具体参见codecs的文档
print(convert('长')) # => '长'
全篇替换
import re
print(re.sub(r'....;',
lambda match: convert(match.group()),
ss))
全文替换后的结果:
学科主题: 长篇小说-中国-当代-
中图法分类号:
- I247.5
-
提要文摘附注:
- 小说中的主人公,正是因为当年盗墓的爷爷人赘杭州而身在杭州,开了一家小的古董铺子,守护着那群长沙土夫子从古墓不知名怪物捭中拼命抢出的战国帛书……
# for python2.7
def convert(s):
return ''.join([r'\u', s.strip('')]).decode('unicode_escape')
ss = unicode(ss, 'gbk') # convert gbk-encoded byte-string ss to unicode string
import re
print re.sub(r'....;', lambda match: convert(match.group()), ss)