
需要尋找並刪除所有隻有 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