VBでの正規表現
- VB,VBA
-
2009-11-13 - 更新:2017-08-18
この記事は最終更新日から1年以上経過しています。
VBで正規表現を使った文字列検索を実装します。
Dim regEx As Object
Dim Matches As Variant
'正規表現オブジェクト
Set regEx = CreateObject("VBScript.RegExp")
'検索文字列全体について検索する 'regEx.Global = True '最初の一致を検索する(既定値) 'regEx.Global = False '検索するときに大文字と小文字を区別しない 'regEx.IgnoreCase = True '検索するときに大文字と小文字を区別する(既定値) 'regEx.IgnoreCase = False '検索するパターン regEx.Pattern = "検索パターン"
'検索するだけの場合
'パターンにマッチする文字列が検索されたらTrue、見つからなければFalse
'boolRst = regEx.Test("検索対象となる文字列")
'一致した文字列を置換文字列(string2)と置き換える
'string = regEx.Replace("置き換え対象となる文字列", "string2")
'検索実行
Set Matches = regEx.Execute("検索対象となる文字列")
'1番目にマッチした文字列を取り出す
'=Matches(0).Value
'パターンにマッチした文字列を全て取り出す
If Matches.Count > 0 Then
For Each Match In Matches
'マッチした位置 (先頭 = 0)
i = Match.FirstIndex
'マッチした文字列
'Match.Value
'マッチした文字列の長さ
'Match.Length
Next
End If
'オブジェクトを破棄(メモリリークを防ぐため必須)
Set Matches = Nothing
Set regEx = Nothing
サブパターンにマッチした文字列を取り出すには
'1番目にマッチした文字列を取り出す
If Matches.Count = 0 Then
myRegexSub = ""
Else
If Matches(0).SubMatches.Count = 0 Then
myRegexSub = ""
Else
myRegexSub = Matches(0).SubMatches(0)
End If
End If
サブパターンにマッチした文字列のうち一部だけ置き換える
'検索するパターン
regEx.pattern = "([0-9]+)([a-z])([0-9]+)"
'一致した文字列を置換文字列(例としてハイフン)と置き換える
string = regEx.Replace("置き換え対象の文字列", "$1-$3")
この記事がお役に立ちましたらシェアお願いします
5,971 views




