用另一个文件中的单词替换 [[Word]]

用另一个文件中的单词替换 [[Word]]

我有一个如下所示的翻译文件:

Apple=Apfel
Banana=Banane
Cherry=Kirsche
Train=Zug

...还有 500 多行类似的内容

现在我有一个需要处理文本的文件。只需要替换文本的某些部分,例如:

The [[Apple]] was next to the [[Banana]]. Meanwhile the [[Cherry]] was chilling by the [[Train]].

结果需要

The [[Apfel]] was next to the [[Banane]]. Meanwhile the [[Kirsche]] was chilling by the [[Zug]].

手动复制/粘贴的事件太多了。有什么简单的方法可以搜索 [[XXX]] 并从另一个文件中替换?

答案1

Notepad++ 可用于各种用途,从记笔记到高级文本处理。但正如评论中提到的,你需要安装Python 脚本来自插件管理器的插件。

将替换后的文件复制到例如D:/_working/paired-search-replace.txt并用空格分隔值,或者像你所做的那样=

Apple=Apfel
Banana=Banane
Cherry=Kirsche
Train=Zug
satellite antenna=Satellitenantenne

创建新脚本。

import re
separators = "=", "\n"

def custom_split(sepr_list, str_to_split):
    # create regular expression dynamically
    regular_exp = '|'.join(map(re.escape, sepr_list))
    return re.split(regular_exp, str_to_split)

with open('D:/_working/paired-search-replace.txt') as f:
    for l in f:
        s = custom_split(separators, l)
        editor.replace(s[0], s[1])

根据您需要处理和替换的文本运行新脚本。

编辑:

为了在您的特殊情况下包含开始和结束方括号,可以在脚本中添加以下内容:

with open("D:/_working/paired-search-replace.txt") as f:
    for l in f:
        s = custom_split(separators, l)
        s[0] = "[[" + s[0] + "]]"
        s[1] = "[[" + s[1] + "]]"
        editor.replace(s[0], s[1])

仅提供少量翻译列表:

如果您不想使用其他人提到的脚本,则需要使用 Notepad++ 执行一些特殊步骤。请注意,这受搜索和替换字符串长度的限制。

将配对的翻译列表复制到两个文件,例如search-source.txtreplace-target.txt(用于处理),并编辑内容和格式以搜索和替换字符串,如下所示。

您可以使用 Notepad++ 的 RegEx 功能和“列编辑器”模式来实现此目的。例如,通过按住并向Alt下拖动列来选择所需的列。然后转到“编辑 -> 列编辑器”。选择“要插入的数字”按钮,然后选择起始值和增量。它将用您想要的值替换列。稍后使用STRG+J连接行

然后尝试使用正则表达式替换

(Apple)|(Banana)|(Cherry)|(Train)

(?1Apfel)(?2Banane)(?3Kirsche)(?4Zug)

在此处输入图片描述

相关内容