【VBScript】正規表現による一致・不一致のチェック


この記事はプロモーションを含みます。

VBScript

ホーム > VBScript 逆引きリファレンス

VBScriptでは、RegExpオブジェクトを用いることで、正規表現を使用することが可能です。
今回は、正規表現に一致する場合は「True」、一致しない場合は「False」を返す「Test」メソッドの使い方を解説します。

書式と戻り値

RegExpオブジェクト(Testメソッド)の書式と戻り値になります。

書式

RegExpオブジェクト.Test(検索対象の文字列)

戻り値

・正規表現にマッチする:True
・正規表現にマッチしない:False

サンプルと解説

以下がサンプルになります。
これをそのまま実行すると、変数[str]に「鈴木」が含まれているかをチェックします。
結果、メッセージボックスで「一致」と表示されます。

変数[pattern]の内容を「高木」などに変えると、「一致しない」と表示されるようになります。

' チェックを行う文字列
str = "田中,山田,鈴木"

' 正規表現のマッチングパターン
pattern = "鈴木"

' 正規表現チェック関数
Function RegExpTest(Byval str, Byval pattern)

	Set regEx = CreateObject("VBScript.RegExp")
	
	regEx.Pattern = pattern
	
	If(regEx.Test(str))Then
		RegExpTest = "一致"
	Else
		RegExpTest = "不一致"
	End If
	
End Function

' 正規表現チェック関数の呼び出し
MsgBox(RegExpTest(str, pattern))

各行の処理について解説していきます。

2行目の変数[str]に、チェックを行う文字列を設定します。

5行目の変数[pattern]に、正規表現のマッチングパターンを設定します。
例では、「pattern = “鈴木”」としていますが、これは正規表現での「.*鈴木.*」と同じ扱いとなります。

10行目の「Set regEx = CreateObject(“VBScript.RegExp”)」は、RegExpオブジェクトを作成しています。
こちらは、RegExpで正規表現を使用する際に必要となる記述です。

12行目の「regEx.Pattern = pattern」は、正規表現のマッチングパターンを設定しています。
サンプルでは、マッチングパターンとして「pattern = “鈴木”」を設定しており、これは、「鈴木」を含む文字列なら一致するという意味になります。

14~18行目のIf文(条件分岐)では、以下の条件で関数の実行結果をセットしています。
>正規表現にマッチする場合は「一致」
>正規表現にマッチしない場合は「不一致」
特に重要なのが、14行目の「regEx.Test(str)」です。
ここで「RegExpオブジェクト.Testメソッド」を実行しています。
Testメソッドで正規表現のチェックを行い、マッチする場合は「True」、マッチしない場合は「False」を返します。

23行目の「MsgBox(RegExpTest(str, pattern))」は、今回作成した正規表現のマッチングチェックを行う関数「RegExpTest」の呼び出し処理です。
引数として、以下を渡すことで正規表現のチェックを行っています。
>引数1:検索対象の文字列(サンプルでは「str = “田中,山田,鈴木”」)
>引数2:正規表現のマッチングパターン(サンプルでは「pattern = “鈴木”」)
引数で渡した条件でチェックし、チェック結果をメッセージボックスで表示しています。

記事は以上です。文章にすると少し複雑に感じれられるかもしれませんが、プログラムを1行ずつ読んでいけば、意外に簡単な処理になっています。
また、関数として作成することで、他のプログラムからは呼び出すだけで正規表現のチェックを行うことができますので、是非使ってみて下さい。

コメント

タイトルとURLをコピーしました