【发布时间】:2022-06-10 22:57:01
【问题描述】:
我正在处理一个更改 docx 文件中的单词的个人项目。我使用正则表达式来查找和替换所有单词,但我对其进行了一些改进,以便能够选择要更改的单词的位置。但目前的可能性似乎不大。我希望大家可以帮助我想出解决方案。这是我使用的代码:
import docx
from docx import Document
import re
def keepfont(filename,key,value):
doc = Document(filename)
countKey = 0
for p in doc.paragraphs:
match = re.findall(key,p.text,re.IGNORECASE)
for igkey in match:
countKey = split_text.count(igkey)
#print(igkey)
split_text = p.text
# print(key)
inline = p.runs
# Loop added to work with runs (strings with same style)
for j in range(len(inline)):
if igkey in inline[j].text:
print(inline[j].text)
#print(inline[j])
#print(inline[j].text)
text = inline[j].text.replace(key, value)
inline[j].text = text
#print(p.text)
doc.save('dest1.docx')
#path = r'文件docx的路径'
#keepfont(path,'要改变的词','改变的词')
文本示例:'Welcome to Ex COMPANY
在我们公司,你有 blala...,
这家公司会制造 blale...,
公司会给你 bolobala...,
【问题讨论】:
-
请输入您要更改的文档中的示例段落以及当前输出以及预期为真的内容!
-
另外,我已经解决了与此相关的问题,我认为交换两个单词的最佳方法是使用
re.usbhow-to-swap-two-words-in-a-string -
它可以很好地更改单词,但我想要改进的是能够在特定位置更改单词。 `示例:我找到了 2 个单词 Company 和 COMPANY,但我只想更改 1 个单词 COMPANY
-
您可以使用
replace()例如my_str= my_str.replace('COMPANY', 'THE TEXT TO BE PLACED') -
我的意思是在文本中有很多可能的单词行,我需要将它移动到特定位置
标签: python python-docx regexp-replace