记录一下这两天在处理文档时遇到的小问题。
第一个任务是读取两个文件,一个存放了很多正则表达式,另一个是要修改的excel文件。
读取已有的正则,然后挨个到excel里匹配并替换。
第一个问题报了
re.error: bad character range -\d at
搜了,说是:re分割字符串时,所用的分隔符集合必须按其ASCII值的大小,从小到大排列
记一下……本人正则小白,也就这两天搞会了。 或许过两天又忘了
第二个问题,测试了说结果不准确
原来的代码是:
keyword_pattern = '|'.join(map(re.escape, rule_keyword)) #多个正则分开
keyword_pattern = re.compile(keyword_pattern) #正则编译
matches = test_df['title'].str.contains(keyword_pattern, regex=True, na=False) #筛选
然后我仔细查看了需求,文档里要求的意思其实是每一条对应的规则,包含规则里所有的字。
于是改成了下面这样:
for keys in rule_keyword:
flag = 1
is_match = test_df['title'].str.contains(keys,regex=False, na=False)
if is_match is True:
flag *= 1
else:
flag *= 0
# 在每一个规则里面找,但凡有一个不符合,flag=0,即不符合
if flag == 1:
new_clos = new_clos._append({'cate_id':rule_category_id,'cate_name':rule_category_name}, ignore_index = True)
for循环来判断每一个字是不是都在,在就是1,不在就是0,都乘起来,但凡有一个不在,就不符合要求。
后面运行的时候又不能读取文件,它报
No such file or directory
先以为是xlrd版本的问题,安装了xlrd1.2.0还是不行,就算在同一文件夹下也得填上绝对路径。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix