python - 使用python脚本在 Notepad++ 中进行多词搜索和替换

标签 python notepad++

我通常使用 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/

相关文章:

python - 分组并滞后数据框的所有列?

python - 不和谐 ffprobe/avprobe 和 ffmpeg/avconv 未找到错误

python - scrapy:使用 itemLoader 填充嵌套项目

原始类型的python按引用调用

regex - Notepad++ 正则表达式查找具有条件的行组

html - TextFX HTML Tidy 替换(格式 HTML)

regex - 使用 Notepad++ 中的正则表达式在xml标签中的字符串中查找特定单词?

python - BeautifulSoup tag.children 只获取奇数元素

php - 正则表达式 - 用小写字母替换大写字母和一些细节

regex - 如何在 Notepad++ 中使用替换正则表达式小写所选文本