前面一節中我們講過在正則表示式中 a|b 表示匹配a或者是b,同樣 [ab]
也表示匹配a或者b,而非匹配ab。
[0-9]表示匹配0-9中任意一個數字,[234]表示匹配2或者是3或者是4.
也就是說表達或的關係 可以用“|”,也可以用[]。
下面我們看下具體的例子:
左邊單元格中的資料以空格區分,希望根據空格拆分到右邊的單元格。
程式碼:
Sub 拆分()
Dim regx As Object, rng As Range, mat, m, n%
Set regx = CreateObject("vbscript.regexp")
With regx
.Global = True
.Pattern = "[0-9]+"
For Each rng In [a1:a6]
Set mat = .Execute(rng)
For Each m In mat
n = n + 1
Cells(rng.Row, n + 1) = m
Next
n = 0
Next
End With
End Sub
.Pattern = "[0-9]+"表示匹配0-9的之間的任意一個數字,“+”號表示匹配數字一次或者是多次,這樣就把每個以空格分割開的數字全匹配出來。
當然我們也可以寫成 .Pattern = "\d+"。
[0-9a-zA-z]表示從0-9任意數字、a到z任意字母,或者A到Z任意字母。
轉自:米宏Office