求助会VBA或者PYTHON的大佬帮我解决一个WORD问题

查看 42|回复 4
作者:zoenbo   
用VBA或PYTHON将WORD
每个段落里
出现
[color=]超过一个以上的

[color=]【例】 ◆
”,将第一个改为“【例】1.”从第二个开始改为"2.",第三个改为"3."..依此类推(编号),如出现【釋義+】,后边的"【例】 ◆"也按重新按此方法操作(而不是接着上边的编号),
[color=]不要改变文档的格式
~~~
文档
[color=]https://t.wss.ink/f/b28qtit2pbz
[color=]========================================
内容:

图片若不显示点击 https://static.wenshushu.cn/uf/b ... M5VFFP&op=zmmw-1200
[color=]想要的结果

图片链接https://down.wss.show/nmmc4vz/b/ ... nt-type=image%2Fpng

大佬, 帮我

yang0318   

以下是用Python实现该功能的示例代码:
python
import os
import re
from docx import Document
# 定义常量
PATTERN = r'【例】 ◆ '
NUM_PREFIX = '【例】'
# 打开word文档
doc = Document('your-file-name.docx')
# 依次对每个段落进行处理
i = 1  # 记录编号
for para in doc.paragraphs:
    # 获取段落文本
    text = para.text
    # 如果有多个匹配项,则进行编号
    if text.count(PATTERN) > 1:
        # 匹配到所有的【例】 ◆
        matches = re.findall(PATTERN, text)
        # 依次替换
        for j in range(len(matches)):
            # 获取当前需要替换的字符串
            old_str = matches[j]
            # 如果是第一个匹配项,则替换为 "【例】1."
            if j == 0:
                new_str = f"{NUM_PREFIX}1."
            # 否则替换为 "j+1."
            else:
                new_str = f"{NUM_PREFIX}{j+1}."
            # 替换文本
            text = text.replace(old_str, new_str, 1)
    # 替换完后,将修改的文本赋值给段落对象
    para.text = text
    # 增加编号
    i += 1
# 保存文档
doc.save('your-new-file-name.docx')
这段代码首先打开 Word 文档,然后遍历每个段落。对于每个段落,首先使用正则表达式找到所有的 "【例】 ◆",如果超过一个则进行编号,否则不进行任何操作。对于需要编号的情况,首先将第一个替换为 "【例】1.",然后将后面的依次替换为 "2."、"3." 等,最后将修改后的文本赋值给段落对象。
请根据实际情况修改文件名和路径等参数,并在代码中添加必要的异常处理和错误检查。同时,请注意备份原始 Word 文档,以免意外数据丢失。
zoenbo
OP
  


yang0318 发表于 2023-4-26 10:52
以下是用Python实现该功能的示例代码:
python

大佬真是神速啊,就是原有的格式没了。能不能把所有格式保留,帮我添加个完成提示哈~
zoenbo
OP
  

@yang0318 回复改不了了~没仔细看,文档很多地方都没有改,和要求有出入的哈~ CHATGPT生成的代码我试过N多回都没解决。
陰jam1 (名詞) 【釋義】 ◆ 又叫瀏海,指遮住前額嘅頭髮(量詞:擗/執) 【例】1.留陰   【例】2.齊陰   【例】3.平陰   【例】4.斜陰   【例】5.你擗陰亂咗呀,你梳梳佢。
耐心noi6 sam1 (形容詞) 【釋義】 ◆ 能夠忍耐 長時間做一樣嘢,同埋期間所遇到嘅問題,並唔變得急躁 【例】1.感謝你嘅耐心解釋。   【例】2.佢好耐心噉教我。
呵ho1 (動詞) 【釋義】 ◆ 即係氹;以言語或行為令人開心或唔再嬲 【例】1.你老婆嬲你嚹,重唔呵返佢?   【例】2.做咩咁唔小心跌倒啊,爸爸呵返喇!   【釋義+】 ◆ 空氣從口中慢慢釋放出嚟;通常都係暖嘅 【例】3.呵一口氣
zpy2   


yang0318 发表于 2023-4-26 10:52
以下是用Python实现该功能的示例代码:
python

GPT生成的吗?厉害啊
您需要登录后才可以回帖 登录 | 立即注册