- 正規表現パターンの全体または一部を括弧()で囲むと、その部分が一時バッファに格納される。
- ここでマッチしたら一致した順に保存される。
- バッファ番号があり、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