VBScript/正規表現

Last-modified: 2010-02-02 (火) 00:36:20

VBScript 正規表現の概説

  • 正規表現パターンの全体または一部を括弧()で囲むと、その部分が一時バッファに格納される。
  • ここでマッチしたら一致した順に保存される。
  • バッファ番号があり、1~99まで。
  • 各バッファには、'\n' でアクセスできる。例)\1,\2,\10,\99

サンプル
ファイルを1行ずつ読み込んで、正規表現でパターンマッチングする。
マッチしたら、さらに正規表現でサブマッチを行い、サブマッチを表示する

Option Explicit
On Error Resume Next
'***宣言部***
Dim objFSO   ' FileSystemObject
Dim objFile  ' ファイル読み込み用
Dim objRegExp   ' 正規表現オブジェクト
Dim Match,Matches
Dim strReadLine
Dim name
'***正規表現処理***
Set objRegExp = New RegExp
objRegExp.Pattern = "^NAME\s+([a-zA-Z0-9-]+)"
objRegExp.IgnoreCase = True
objRegExp.Global = True
'***メイン処理***
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
   Set objFile = objFSO.OpenTextFile("meibo.txt")
   If Err.Number = 0 Then
       Do While objFile.AtEndOfStream <> True
       strReadLine = objFile.ReadLine
           If objRegExp.Test(strReadLine) Then
               Set Matches = objRegExp.Execute(strReadLine)
               For Each Match in Matches
                   name = Match.SubMatches(0)
                   WScript.Echo name
               Next
           End If
       Loop
       objFile.Close
   Else
       WScript.Echo "ファイルオープンエラー: " & Err.Description
   End If
Else
   WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing