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