正規表現で文字列を検索(マッチング)

正規表現を利用して指定した文字列を検索(マッチング)する。

指定のパターンが文字列内に存在するかを正規表現を利用して検索(マッチング)します。

VBAで正規表現を利用するにはRegExpオブジェクトを利用します。
RegExpオブジェクトを利用して指定のパターンの有無を検索(マッチング)し、その結果を返します。
文字列内に一致する文字列があれば True 、なければ False を返します。

'******************************************************************
' パターンに一致する文字列の検索
'******************************************************************
Sub Main_RegExpMatch()

    '検索対象の文字列
    Dim sString  As String
    sString = "1234abc@34"
    
    '検索したい文字列パターン
    Dim sPattern As String
    sPattern = "abc.34$"
    
    '検索
    Dim bResult  As Boolean
    bResult = runRegExpTest(sString, sPattern)
    
    '実行結果
    Debug.Print "検索対象文字列 : " & sString
    Debug.Print "検索パターン   : " & sPattern
    
    If bResult Then
        Debug.Print "結果           : " & bResult & "(パターン一致あり)"
    Else
        Debug.Print "結果           : " & bResult & "(パターン一致なし)"
    End If

End Sub

'******************************************************************
' 正規表現で文字列を検索
'------------------------------------------------------------------
'  第1引数:検索対象の文字列
'  第2引数:正規表現のパターン
'------------------------------------------------------------------
'  戻り値 :実行結果(True:一致あり、False:一致なし)
'******************************************************************
Function runRegExpTest(getStr As String, getPtn As String) As Boolean
Dim oReg As Object
    
    Set oReg = CreateObject("VBScript.RegExp")
    oReg.Pattern = getPtn  '検索するパターンを設定
    oReg.IgnoreCase = True   '大文字と小文字を区別(True:しない、Flase:する)
    oReg.Global = True       '文字列全体を検索(True:する、Flase:しない)

    'パターンに一致する文字列がある場合はTrue、ない場合はFalseが返される
    runRegExpTest = oReg.Test(getStr)

    Set oReg = Nothing
    
End Function

 ■実行結果