テクノロジーの雑学・豆知識

PC・スマホ、プログラミング、電子機器、電化製品についての雑学・うんちく・豆知識・トリビアを集めたサイトです。気になった記事や文章を個人のメモとして投稿しています

VBScriptの正規表現

VBScriptで正規表現を使った検索スクリプトです。WSHが実行できる環境で、下記の項目に注意して実行してください。

ファイルの保存2

'入力した正規表現を含む行を検索して保存

Dim FS
Set FS = CreateObject("Scripting.FileSystemObject")

Dim name1, name2
Dim file1, file2

name1 = "c:\new\kihon\test1.txt"
name2 = "c:\new\kihon\test2.txt"
Set file1 = FS.OpenTextFile(name1) '既存のファイルを開く
Set file2 = FS.CreateTextFile(name2) '新規ファイルを生成する

Dim myText
Dim myVal

Set objRE = New RegExp

myText =""
objRE.Pattern = InputBox("検索する正規表現")

Do Until ( file1.AtEndOfStream )
myText = file1.ReadLine '1行読み込む
myVal = objRE.TEST( myText) '検索する
If myVal Then '文字列があれば
file2.WriteLine(myText) '保存する
End If
Loop

file1.Close
file2.Close
WScript.Echo "終了"

指定した正規表現を含む行のみ保存するスクリプトです。

枠内をテキスト形式で保存して、ファイル名をSaveText2.vbsなどに変更します。

指定した文字列をc:\new\test1.txtから検索し、test2.txtに保存します。 

正規表現の基本的なメタキャラクタ

. 任意の1文字
\w aからz、AからZ、0から9、_
\W aからz、AからZ、0から9、_以外
\s 半角スペース、タブ文字、改行、復帰(CR)、改ページ(FF)
\S 半角スペース、タブ文字、改行、復帰(CR)、改ページ(FF)以外
\d 半角数字1文字
\D 半角数字1文字以外

* 0回以上の繰返し(最長マッチ)
+ 1回以上の繰返し
{n} n回の繰返し
{n,} n回以上の繰返し
{n,m} n回以上m回以下の繰返し
? 0回または1回の出現
*? 0回以上の繰返し(最短マッチ)

^ 文字列の先頭
$ 文字列の末尾
\b 単語の境界
\B 単語の境界以外
[●●●] 指定された複数の文字のどれか
[^●●●] 指定された複数の文字のどれか以外
[●-●] 連続する文字コードの範囲のどれか
[A-Z] アルファベットの大文字
[a-z] アルファベットの小文字
[ぁ-ん] ひらがな
[ァ-ヶ] カタカナ
[ヲ-゜] 半角カタカナ
[^●-●] 連続する文字コードの範囲のどれか以外
●●●|●●● 指定されたパターンのどれか
(●●●) 文字列のグループ化

(●●●) \1 キャプチャ