'一 正則表達式
'正則表達式是處理字符串的外部工具,它可以根據設置的字符串對比規則,進行字符串的對比、替換等操作。
'正則表達式的作用:
'1、完成復雜的字符串判斷
'2、在字符串判斷時,可以最大限度的避開循環,從而達到提高運行效率的目的。
'二 使用方法
'1、引用法
'點擊VBE編輯器菜單:工具 - 引用,選取: Microsoft VBScript Regular Expressions 5.5,引用后在程序開始進行如下聲明
'Dim regex As New RegExp
Sub t1()
Dim reg As New RegExp
End Sub
'2、直接他建法
' 代碼引用 (后期綁定)
' Dim regex As Object
' Set regex = CreateObject("VBScript.RegExp") '創建正則對象
三 常用屬性
'1 Global屬性:
'如果值為true,則搜索全部字符
'如果值為False,則搜索到第1個即停止
'1 例:
Sub t3()
Dim reg As New RegExp
Dim sr
sr = "ABCEA"
With reg
.Global = True
.Pattern = "A"
Debug.Print .Replace(sr, "")
End With
End Sub
'2 IgnoreCase 屬性
'如果搜索是區分大小寫的,為False(缺省值)True不分
'3 Pattern 屬性
' 一個字符串,用來定義正則表達式。缺省值為空文本。
'4 Multiline 屬性,字符串是不是使用了多行,如果是多行,$適用於每一行的最后一個
Sub t4()
Dim reg As New RegExp
Dim sr
sr = "AEA" & Chr(10) & "ABCA"
With reg
.Global = True
.MultiLine = True
'.Pattern = "A$"
.Pattern = "^A"
Debug.Print .Replace(sr, "")
End With
End Sub
'5 Execute 方法
'返回一個 MatchCollection 對象,該對象包含每個成功匹配的 Match 對象,
'返回的信息包括:
'FirstIndex:開始位置
'Length; 長度
'Value:長度
Sub t5()
Dim reg As New RegExp
Dim sr, matc
sr = "A454BCEA5"
With reg
.Global = True
.Pattern = "A\d+"
Set matc = .Execute(sr)
End With
Stop
End Sub
Function ns(rg)
Dim reg As New RegExp
Dim sr, ma, s, m, x
With reg
.Global = True
.Pattern = "\d*\.?\d*"
Set ma = .Execute(rg)
For Each m In ma
s = s + Val(m)
Next m
End With
ns = s
' Stop
End Function
6、Text方法
'返回一個布爾值,該值指示正則表達式是否與字符串成功匹配。其實就是判斷兩個字符串是否匹配成功
Sub t7()
Dim reg As New RegExp
Dim sr
sr = "BCR6EA"
With reg
.Global = True
.Pattern = "\d+"
If .test(sr) Then MsgBox "字符串中含有數字"
End With
End Sub