Notepad++:进行批量文本替换

Notepad++:进行批量文本替换


我正在尝试从我在网上找到的几个网页创建一个词典文件。该词典对词条进行索引,以便在搜索模式下轻松找到它们。网页中的信息分为几个部分,每个部分都有一个唯一的 ID。例如: <div id="word-2857">Andronicus, Titus . . .
问题是其他文本中有指向其他单词的参考链接,如下所示:<a href="#word-2857"><i>see Titus Andronicus</i></a>

因此,当创建词典文件(用于 Goldendict)时,对其他单词的引用必须写成:<a href="entry://headword">text to display</a>

由于将 Andronicus, Titus 改为 word-2857 是没用的,所以我想(最终)批量替换所有单词的链接(大约有 10,000 个)。我的意思是我想将所有 ID 链接替换为其对应的词。<a href="#word-2857"><i>see Titus Andronicus</i></a>应该变成<a href="entry://Andronicus, Titus">see Titus Andronicus</a>

我已经有一个列表,列出了我想要替换的所有单词。问题是使用 Notepad++ 我一次只能进行一次唯一替换。有超过 10,000 个单词,这会花费太长时间。请帮助解释如何轻松完成此操作。

谢谢

答案1

好的,这是我的解决方案。将所有内容从 Notepad++ 复制到新的 Excel 工作簿。它必须在 Sheet1 中。将您列出的所有“查找”项目复制到 Sheet2 的 A 列中。将匹配的“替换”项目放在 Sheet2 的 B 列中。Sheet2 上没有标题,因为它也会搜索和替换标题值(除非您修改以下代码中的范围“r”以从 A2 开始)。

运行以下脚本:

Sub FindReplaceAll()
Dim FindString, ReplaceString As String
Dim r As Range

Set r = Sheet2.Range("A1")

Do While Not r.Value = 0
    FindString = r.Value
    ReplaceString = r.Offset(0, 1).Value

    Sheet1.Cells.Replace What:=FindString, Replacement:=ReplaceString, LookAt:= _
        xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Set r = r.Offset(1, 0)
Loop

MsgBox "Done!"

End Sub

这应该会逐一搜索并替换所有条目。完成后,您可以将其复制回 Notepad++。它会在第一个空行处停止,因此请确保您查找/替换的行是连续的。

如果您对 Excel 宏/脚本不熟悉,请在 Excel 中按 alt + F11,右键单击左侧树中的 VBAProject,然后选择插入 > 模块。将代码粘贴到出现的新框中,然后单击播放按钮 (F5)。

希望这会有所帮助,祝你好运!

相关内容