ExcelWork.info

VBA で正規表現を使う(RegExp オブジェクトのメソッド)

RegExp オブジェクトのメソッド

RegExp オブジェクトの詳細に関しては、VBA で正規表現を使う(RegExp オブジェクト)、プロパティの詳細に関しては、RegExp オブジェクトのプロパティ を参照してください。


Test メソッド

指定された文字列を正規表現で検索した結果、パターンに一致する文字列が検索されたかどうかを判定します。


【書式】

object.Test ( string )


引数・戻り値

  • object  ・・・  対象となる RegExp オブジェクトを指定します。
  • string  ・・・  正規表現による検索の対象となるテキスト文字列を指定します。
  • 戻り値  ・・・  ブール型(Boolean)。パターンに一致する文字列が見つかると True、見つからないと False を返します。


実行結果


Replace メソッド

正規表現で検索して見つかった文字列を置換します。


【書式】

object.Replace ( string1, string2 )


引数・戻り値

  • object  ・・・  対象となる RegExp オブジェクトを指定します。
  • string1  ・・・  検索および置換の対象となるテキスト文字列を指定します。
  • string2  ・・・  置換するテキスト文字列を指定します。
  • 戻り値  ・・・  正規表現で検索し、マッチした文字列を引数 string2 で指定した文字列に置き換えた文字列を返します。マッチするものが見つからなかった場合は、元の文字列(引数 string1 で指定した文字列)を返します。


実行結果


Execute メソッド

正規表現で検索した結果を Matches コレクションとして返します。


【書式】

object.Execute ( string )


引数・戻り値

  • object  ・・・  対象となる RegExp オブジェクトを指定します。
  • string  ・・・  正規表現による検索の対象となるテキスト文字列を指定します。


実行結果



Matches コレクション


Count プロパティ


【書式】

<取得>
object.Matches.Count


引数・戻り値

  • object  ・・・  対象となる RegExp オブジェクトを指定します。
  • 戻り値  ・・・  Execute メソッドにより取得した Matche オブジェクトの数。


Item プロパティ


【書式】

<取得>
object.Matches [.Item] (number)


引数・戻り値

  • object  ・・・  対象となる RegExp オブジェクトを指定します。
  • number  ・・・  インデックス値(0 から Matches.Count – 1 までの数値)を指定します。
  • 戻り値  ・・・  Execute メソッドにより取得した Matche オブジェクト



Matche オブジェクトのプロパティ等


FirstIndex プロパティ

マッチした部分の位置を取得します。


【書式】

<取得>
object.FirstIndex


引数・戻り値

  • object  ・・・  対象となる Matche オブジェクトを指定します。
  • 戻り値  ・・・  検索文字列の最初の位置を0とするオフセット値。


Length プロパティ

マッチした文字列の長さを取得します。


【書式】

<取得>
object.Length


引数・戻り値

  • object  ・・・  対象となる Matche オブジェクトを指定します。


Value プロパティ

マッチした文字列を取得します。


【書式】

<取得>
object.Value


引数・戻り値

  • object  ・・・  対象となる Matche オブジェクトを指定します。


SubMatches コレクション

正規表現で検索を実行すると、サブ条件が取得を示す () (カッコ)で囲まれている場合にサブマッチ文字列が 0 個以上作成されます(SubMatches コレクション)。SubMatches コレクションの各項目へは、SubMatches(number) の形でアクセスします。


【書式】

<取得>
object.SubMatches( number )


引数・戻り値

  • object  ・・・  対象となる Matche オブジェクトを指定します。
  • number  ・・・  0 以上 SubMatches.Count -1 までのインデックス値を指定します。
  • 戻り値  ・・・  SubMatches コレクション。SubMatches コレクションの各項目は、正規表現によって検索および取得される文字列です。


実行結果



正規表現のパターン例


検索内容 正規表現のパターン例
メールアドレス ^([\w]+)([\w\.-]+)@([\w_\-]+)\.([\w_\.\-]*)[a-z][a-z]$
HTMLのタグ <(.*)>.*<\/\1>
ひらがな(5文字) [あ-ん]{5}
カタカナ(3文字以上) [ア-ン]{3,}
半角カタカナ(5文字以下) [ヲ-゚]{1,5}
半角英数(5文字以上10文字以下) [a-zA-Z0-9]{5,10}
郵便番号 ^(\d{3})-(\d{4})$
電話番号(市外局番含む) ^0(\d{1}-\d{4}|\d{2}-\d{3}|\d{3}-\d{2}|\d{4}-\d{1})-\d{4}$
電話番号(携帯) ^0[7|8|9|]0-\d{4}-\d{4}$