vba-正則表達式(創建,使用和屬性方法)


'一 正則表達式
   '正則表達式是處理字符串的外部工具,它可以根據設置的字符串對比規則,進行字符串的對比、替換等操作。
   '正則表達式的作用:
     '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
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM