SubMatches コレクション

正規表現のサブマッチ文字列のコレクションです。

解説

SubMatches コレクションには、個別のサブマッチ文字列が格納されます。このコレクションは、RegExp オブジェクトの Execute メソッドによってのみ作成可能です。SubMatches コレクションのプロパティは、すべて読み取り専用です。

正規表現で検索を実行すると、サブ条件が取得を示すかっこで囲まれている場合にサブマッチ文字列が 0 個以上作成されます。SubMatches コレクションの各項目は、正規表現によって検索および取得される文字列です。

次のコードは、正規表現の検索で SubMatches コレクションを取得し、各メンバにアクセスする例です。

Function SubMatchTest(inpStr)
  Dim oRe, oMatch, oMatches
  Set oRe = New RegExp
' e-mail アドレスを検索します (正確な RegExp ではありません)。
  oRe.Pattern = "(\w+)@(\w+)\.(\w+)"
' Matches コレクションを取得します。
  Set oMatches = oRe.Execute(inpStr)
' Matches コレクションの最初の項目を取得します。
  Set oMatch = oMatches(0)
' 結果の文字列を作成します。
' Match オブジェクトは、dragon@xyzzy.com 全体に一致します。
retStr = "Email アドレス : "  & oMatch & vbNewline
' アドレスのサブマッチの部分を取得します。
retStr = retStr & "Email のエイリアス : " & oMatch.SubMatches(0)  ' dragon
  retStr = retStr & vbNewline
retStr = retStr & "組織 : " " & oMatch. SubMatches(1)' xyzzy
  SubMatchTest = retStr
End Function
MsgBox(SubMatchTest("dragon@xyzzy.com.にメールを送信してください。ありがとうございました。"))

必要条件

バージョン 5.5

参照

For Each...Next ステートメント | Match オブジェクト | Matches コレクション | RegExp オブジェクト