中文正则表达式检索
需求
前人遗留的项目,后端项目的表名和字段绝大部分是拼音首字母,且不写注释,认知负担很大。
从前端项目的 html
模板中提取所有的中文字符,待处理的文本文件中,每行可能包含中文字符串。
需要清洗成每行一个连续的中文字符串,并生成对应的拼音首字母。
代码
# -*- coding: utf-8 -*-
# 适用版本:python 2.7.15
import sys
import re
import os
reload(sys)
sys.setdefaultencoding('utf8')
result_list = []
pattern = re.compile(u"[\u4e00-\u9fa5]+") #定义正则表达式
fs = os.listdir('files')
for i in range(len(fs)): #构造文件路径
fs[i] = 'files' + '/' + fs[i]
for i in range(len(fs)):
f = open(fs[i]) #打开文件
for line in f :
t = u'' + line.strip().encode('utf8')
# print(t)
result_temp = re.findall(pattern, t) #进行匹配
result_list = result_list + result_temp #将两个列表合起来,result_list每次都新增这次新找到的
print(fs[i],' is finished') #提示一下这个文件已完成
f.close() #关闭文件
result_list_to_write = '\n'.join(result_list) #用换行符拼接成整一个字符串,方便写入文件
f = open('result.txt','w')
f.write(result_list_to_write)
f.close() #写入文件完成
print('result file is ok') #又是提示一下,完工啦,啦啦啦啦啦
关键代码在 t = u'' + line.strip().encode('utf8')
,添加了 u''
,这样就能匹配中文字符了。
汉字转拼音
vscode 搜索 (\w)([\wü]+? )
,使用 $1
替换,这样每行的内容就变为拼音首字母了。
检索
遇到不理解的拼音首字母缩写,先在生成的字典里查询一下。整个复原中文的过程就像考古一样,心累。
最后更新于