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>

由於使用詞條 word-2857 而不是 Andronicus,Titus 非常無用,我想做的(最後)是批量替換所有單字的連結(大約有 10,000 個單字)。我的意思是我想將所有 ID 連結替換為其相應的詞條。<a href="#word-2857"><i>see Titus Andronicus</i></a>應該成為<a href="entry://Andronicus, Titus">see Titus Andronicus</a>

我已經有了一個我想要替換的所有單字的清單。問題是,使用 Notepad++ 我一次只能進行一項唯一的替換。一萬多個字,這會花很長時間。請協助解釋如何輕鬆完成此操作。

謝謝

答案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)。

希望有幫助,祝你好運!

相關內容