- Sub TEXT1()
- Dim a, m, mat
- Dim reg As Object '声明
- Set reg = CreateObject("VBScript.RegExp") '创建正则对象
- For i = 1 To 20
- a = Cells(i, 1).Value
- With reg
- .Global = True
- .Pattern = "(.*)((.*))(.*)"
- End With
- Set mat = reg.Execute(a)
- For Each m In mat
- MsgBox m.SubMatches(1)
- Next
- Next
- End Sub
复制代码z再教你一个方法:
execute法下生成一个符合规则的集合。而每一个符合规则的值都有submatches方法,它也是一个集合。
但是需要把规则都用英文的()括号,每一个括号做一个值。如上有三组英文括号,把符合规则的值分成了3部分:分别是括号前、括号+括号内、括号后。
我们需要第二部分,那就调用值m的submatches(1)就是第二部分了,submatches集合也是一个数组,底标是从0开始,0,1,2;所以第二部分是submatches(1)