中文正则表达式检索

需求

前人遗留的项目,后端项目的表名和字段绝大部分是拼音首字母,且不写注释,认知负担很大。

从前端项目的 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 替换,这样每行的内容就变为拼音首字母了。

检索

遇到不理解的拼音首字母缩写,先在生成的字典里查询一下。整个复原中文的过程就像考古一样,心累。

最后更新于