MS Word - 只查找 3 位數字

MS Word - 只查找 3 位數字

需要尋找並刪除所有隻有 3 位數字的數字 - 並忽略 1-2 和 4+ 位數字(如果有任何幫助,第三個數字後面是中間沒有空格的文本,例如“457text”)。非常感謝任何幫助!

答案1

您可以在 Word(即不是腳本)中使用通配符來尋找和取代來執行此操作。如果 3 位數字後面總是跟著字母:

在此輸入影像描述

或者,如果您想要允許任何字元(例如標點符號),您可以排除第四個字元是具有變體的數字:

在此輸入影像描述

在這兩個範例中,在“查找內容”部分中,圓括號表示各個部分- 我們希望查找“單字”開頭的3 位數字作為第一部分,並且僅查找下一個字符是字母(即第二個字符)的那些數字我們想要保留的部分。

在替換為 \2 中意味著我們僅用“A”部分“替換”找到的文本(例如 123A)(其後的其餘文本保持不變,不是“查找”結果的一部分)。

< 表示單字的開頭,也就是我們希望 3 位數字位於單字的開頭,但不想在較長的序列中選取 3 位數字(例如,由於在其中找不到 345,而忽略 12345)。

方括號是字元範圍,因此 [0-9] 表示 0 到 9 之間的任何數字,{3} 表示 3 個字元的序列。 [A-Za-z] 表示任何小寫或大寫字母。 [!0-9] 的替代選項可找到除(!不是)數字 0 到 9 之外的所有內容。

答案2

是的,您可以使用 VBA 腳本來完成此操作。若要開啟 VBA 編輯器,請同時按 ALT + F11。在VBA編輯器中輸入以下程式碼

Sub RegexReplace()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")    
    On Error Resume Next

    RegEx.Global = True
    RegEx.Pattern = InputBox("[0-9][0-9][0-9]")
    ActiveDocument.Range = _ 
    RegEx.Replace(ActiveDocument.Range, InputBox(""))        

End Sub

相關內容