我通常使用 python 脚本一次替换 txt 文件中的几个表达式。
我用要替换的表达式创建了一个引用文件,表达式用空格分隔:
value1 valueA
value2 valueB
value3 valueC
然后我使用 python 脚本:
with open('path to my referencefile.txt') as f:
for l in f:
s = l.split()
editor.replace(s[0], s[1])
它通常可以工作,但是当我尝试替换已经存在的表达式并且我想基本上重新排序时,我遇到了一个问题。
例子:
value1 value2
value2 value3
value3 value4
最后 value1 将被 value2 替换,然后 value2 将被 value3 替换。最后,value3 将被 value4 替换。这意味着 value1 变成了 value4 而不是 value2 ...如何让 value1 被 value2 替换而不是这个级联的替换? (当然,value2 被 value3 替换,value3 被 value4 替换)
在 Notepad++ 中,可以使用正则表达式替换函数,将公式 (value1)|(value2)|(value3) 替换为 (?1value2)(?2value3)(?3value4)。有没有办法用上面提到的 python 脚本实现相同的结果?
还有,如何修改python脚本,只替换txt文件选中区域的表达式?
感谢您的帮助:)
最佳答案
我还没有完全理解这个问题,但是你可以使用这段代码。
with open("val.txt", "r+") as f:
file = f.readlines()
f.seek(0)
for line in file:
s = line.split()
s.reverse()
f.writelines(s[0] + ' ' + s[1] + '\n')
这只是改变了两列。不过,我认为对待txt文件的值才是正确的做法。
关于python - 使用python脚本在 Notepad++ 中进行多词搜索和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53998422/