记录一下这两天在处理文档时遇到的小问题。

第一个任务是读取两个文件,一个存放了很多正则表达式,另一个是要修改的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还是不行,就算在同一文件夹下也得填上绝对路径。

posted on 2024-06-12 22:54  xXTOBIASXx  阅读(6)  评论(0编辑  收藏  举报