我正在尝试从我在网上找到的几个网页创建一个词典文件。该词典对词条进行索引,以便在搜索模式下轻松找到它们。网页中的信息分为几个部分,每个部分都有一个唯一的 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)。
希望这会有所帮助,祝你好运!