2012年2月15日水曜日

VBAでの正規表現

    Dim RegEx As Object
    Dim Matches As Object

    Set RegEx = CreateObject("VBScript.RegExp")
    RegEx.IgnoreCase = True
    RegEx.Global = True

'--- マッチしたかどうかテストする ----
    RegEx.Pattern = "正規表現マッチパターン"
    If RegEx.Test(文字列) Then
        MsgBox "マッチしました"
    Else
        MsgBox "マッチしませんでした"
    End If


'--- マッチしたときのn番目のグループ値を取出す ---
'    $1 --- SubMatches(0)
'    $2 --- SubMatches(1)
'    $3 --- SubMatches(2)

    RegEx.Pattern = "(\d{4})/(\d{2})/(\d{2})"    '日付の形式
    Set Matches = RegEx.Execute("2012/02/14")
    If 0 < Matches.Count Then
        MsgBox Matches(0).SubMatches(0)    '2012
        MsgBox Matches(0).SubMatches(1)    '02
        MsgBox Matches(0).SubMatches(3)    '14
    End If

0 件のコメント: