pattern = r'―.+―':import docx2txt import re # 读取docx文件内容 text = docx2txt.process("example.docx") # 使用正则表达式匹配文本中以数字和符号.开头到答案加大写英文字母结束的内容保存为列表 pattern = r'\d+\.\s\w+\s\w+\s\w+\s\w+\s\w+\s\w+' result = {} for item in re.findall(pattern, text): result[item] = None # 判断result字典是否为空 if not result: print("没有匹配到符合条件的内容!") else: # 将去重后的内容写入新的文本文件 with open("example_output.txt", "w", encoding="utf-8") as f: f.write('\n'.join(result.keys()))
时间: 2023-12-04 07:01:38 浏览: 82
这段代码的作用是读取一个docx文件,使用正则表达式匹配文本中符合要求的内容,并将匹配结果去重后保存到一个新的文本文件中。代码实现比较清晰,但是正则表达式中的`\s`可能会匹配到不必要的空格,可以使用`\s+`来匹配一个或多个空格。另外,正则表达式中的`\w+`只能匹配字母、数字和下划线,如果答案中包含其他字符,可能会匹配不到。可以使用`[a-zA-Z]+`来匹配一个或多个字母。
修改后的代码如下:
```
import docx2txt
import re
# 读取docx文件内容
text = docx2txt.process("example.docx")
# 使用正则表达式匹配文本中符合要求的内容
pattern = r'\d+\.\s+[a-zA-Z]+\s+[a-zA-Z]+\s+[a-zA-Z]+\s+[a-zA-Z]+\s+[a-zA-Z]+\s+[a-zA-Z]+'
result = {}
for item in re.findall(pattern, text):
result[item] = None
# 判断result字典是否为空
if not result:
print("没有匹配到符合条件的内容!")
else:
# 将去重后的内容写入新的文本文件
with open("example_output.txt", "w", encoding="utf-8") as f:
f.write('\n'.join(result.keys()))
```
这段代码可以正确匹配符合要求的内容,并将匹配结果去重后写入新的文本文件中。
阅读全文