2.在“程式碼視窗“中複製貼上以下程式碼:Sub RegTest() "定義正則表示式物件 Dim oRegExp As Object "定義匹配字串集合物件 Dim oMatches As Object "建立正則表示式 "定義要執行正則查詢的文字變數 Dim sText As String sText = "這是v一個正則表示式b的範例程式a程式碼" Set oRegExp = CreateObject("vbscript.regexp") With oRegExp "設定是否匹配所有的符合項,True表示匹配所有, False表示僅匹配第一個符合項 .Global = True "設定是否區分大小寫,True表示不區分大小寫, False表示區分大小寫 .IgnoreCase = True "設定要查詢的字元模式 .Pattern = "[\u4e00-\u9fa5]+" "判斷是否可以找到匹配的字元,若可以則返回True MsgBox .Test(sText) "對字串執行正則查詢,返回所有的查詢值的集合,若未找到,則為空 Set oMatches = .Execute(sText) "把字串中用正則找到的所有匹配字元替換為其它字元 MsgBox .Replace(sText, "") End With Set oRegExp = Nothing Set oMatches = NothingEnd Sub如下圖所示:
1.新建一個空白工作簿,在工作表介面按下組合快捷鍵Alt+F11或者右鍵單擊任意一個工作表標籤,在彈出的右鍵快捷選單單擊“檢視程式碼”進入VBA編輯環境,如下圖所示:
2.在“程式碼視窗“中複製貼上以下程式碼:Sub RegTest() "定義正則表示式物件 Dim oRegExp As Object "定義匹配字串集合物件 Dim oMatches As Object "建立正則表示式 "定義要執行正則查詢的文字變數 Dim sText As String sText = "這是v一個正則表示式b的範例程式a程式碼" Set oRegExp = CreateObject("vbscript.regexp") With oRegExp "設定是否匹配所有的符合項,True表示匹配所有, False表示僅匹配第一個符合項 .Global = True "設定是否區分大小寫,True表示不區分大小寫, False表示區分大小寫 .IgnoreCase = True "設定要查詢的字元模式 .Pattern = "[\u4e00-\u9fa5]+" "判斷是否可以找到匹配的字元,若可以則返回True MsgBox .Test(sText) "對字串執行正則查詢,返回所有的查詢值的集合,若未找到,則為空 Set oMatches = .Execute(sText) "把字串中用正則找到的所有匹配字元替換為其它字元 MsgBox .Replace(sText, "") End With Set oRegExp = Nothing Set oMatches = NothingEnd Sub如下圖所示:
3.執行以上程式碼,將把 sText = "這是v一個正則表示式b的範例程式a程式碼" 變數中的中文字元全部刪除,將只返回"vba"3個英文字元,如下圖所示。其中的.Pattern = "[\u4e00-\u9fa5]+"表示匹配所有中文字元,Pattern屬性是正則表示式物件的核心,當需要執行其它查詢替換時一般都只需更改Pattern屬性即可。
4.一些常見的正則Pattern如下:[0-9]表示匹配任意一個數字[a-zA-Z]表示匹配任意一個英文字母[\u4e00-\u9fa5]表示匹配任意一箇中文字元。