本ページには広告が含まれています。
指定文字列に対して正規表現パターンを検索し、その結果をMatchCollectionコレクションとして返します。
- 構文
- MatchCollection = RegExp.Execute( sourceString )
- 引数
- sourceString (String)必須
- 検索対象の文字列
- 戻り値
使い方
RegExp.Execute メソッドを実行するよりも前にRegExp オブジェクトのプロパティを指定しておく必要があり、RegExp.Pattern プロパティは必須です。
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")
WITH RegExp
.Pattern = "\d+"
DIM MatchCollection = .Execute("123-4567")
ENDWITH
IF MatchCollection.Count <> 0 THEN PRINT MatchCollection.Item(0).Value
- 結果
123
デフォルトではマッチした1つ目しか返されないため、すべてのマッチした内容を取得するにはRegExp.Global プロパティにTrueを指定する必要があります。
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")
WITH RegExp
.Pattern = "\d+"
.Global = TRUE
DIM MatchCollection = .Execute("123-4567")
ENDWITH
FOR Match IN MatchCollection
PRINT Match.Value
NEXT
- 結果
123 4567
RegExp.Pattern プロパティを指定しなかった場合もエラーにはならず、予期しない結果を返すことになるので注意してください。
RegExp.Global プロパティにFalseが指定されている場合、MatchCollection.Count プロパティの結果は必ず1を返します。
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")
WITH RegExp
.Global = FALSE
DIM MatchCollection = .Execute("123")
ENDWITH
PRINT MatchCollection.Count
- 結果
1
RegExp.Global プロパティにTrueが指定されている場合、MatchCollection.Count プロパティの結果はRegExp.Execute メソッドに指定された文字列の文字数より1大きい値が返ります。
以下の例ではRegExp.Execute メソッドの引数が3文字なので3+1で4が返ります。
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")
WITH RegExp
.Global = TRUE
DIM MatchCollection = .Execute("123")
ENDWITH
PRINT MatchCollection.Count
- 結果
4