VBScript: 正規表現で数値のみを抽出する

VBScriptの正規表現で数値のみを抽出する方法を紹介します。

正規表現で一桁の数値を表すパターンは「[0-9]」です。 「[0-9]」に「+」を加えて「[0-9]+」とすることで一桁以上の数値を抽出できます。 「+」は直前の文字と1回以上一致するという意味です。

次のサンプルコードでは、 文字列「9+94=113」から正規表現を使って数値部分のみ 「9」「94」「113」を抽出しています。

' 検索対象
str = "9+94=113"

' パターン
strPattern = "[0-9]+"

' RegExpオブジェクト
Set objRe = New RegExp

' パターン
objRe.Pattern = strPattern
' 全体を検索
objRe.Global = True

' 検索
Set objMatch = objRe.Execute(str)

' 一致した数
WScript.Echo "一致した数: " & objMatch.Count

' 検索結果のループ
For Each m In objMatch
	' 一致した文字列を表示
	WScript.Echo m.Value
Next
実行結果
一致した数: 3
9
94
113

上のコードで、 もしパターンを「[0-9]」とした場合は、 数値が1桁ずつ抽出されるため結果は次のようになります。

パターンを[0-9]にした場合
一致した数: 6
9
9
4
1
1
3
VBScript入門