RegExp.Executeエクスキュート メソッド

本ページには広告が含まれています。

指定文字列に対して正規表現パターンを検索し、その結果をMatchCollectionコレクションとして返します。

構文
  1. MatchCollection = RegExp.Execute( sourceString )
引数
sourceString (String)必須
検索対象の文字列
戻り値

使い方

RegExp.Execute メソッドを実行するよりも前にRegExp オブジェクトのプロパティを指定しておく必要があり、RegExp.Pattern プロパティは必須です。

UWSC
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を指定する必要があります。

UWSC
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を返します。

UWSC
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+14が返ります。

UWSC
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")

WITH RegExp
	.Global = TRUE
	DIM MatchCollection = .Execute("123")
ENDWITH

PRINT MatchCollection.Count
結果
プレーンテキスト
4