UWSCで正規表現(VBScript.RegExp)

UWSC正規表現を利用したいなーということで、公式ヘルプを見てみます。

VBScript.RegExpオブジェクトを利用してください。
regex = CREATEOLEOBJ("VBScript.RegExp")
regex.Pattern = "[^a-zA-Z0-9]"

uwsc.info

( ゚д゚)・・?

VBScriptに触ったことがなかったため、ぽかーんとしてしまったので軽く調べてみました。以下、テスト内容。

str = "YEAAAH!!! HAAAAAAAAAAAA!" //対象文字列

re=CreateOleObj("VBScript.RegExp")

re.pattern = "a{2,}"  //正規表現のパターン
re.Global = True      //文字列全体を検索。trueでする(規定)、falseでしない(マッチする文字列が見つかったらそこで終了)。
re.IgnoreCase = True  //大文字・小文字を区別。trueでしない(規定)、falseでする。

print str + " が対象の文字列です。" + "パターンは " + re.pattern + " です。" + "<#CR>"

////////////////////////////////////////
//置換
////////////////////////////////////////
rep = re.Replace(str,"A")
print "置換結果:" + rep + "<#CR>"

////////////////////////////////////////
//マッチング
////////////////////////////////////////
match = re.Execute(str)
print match.Count + " 個がマッチしました。<#CR>---------"

for i = 0 To match.Count-1
    print match.Item(i).Value + " が" + i + "件目にマッチしました。"
    print i + "件目は" + match.Item(i).FirstIndex + "文字目です。"
    print i + "件目の文字の長さは" + match.Item(i).Length + " です。<#CR>---------"
next

そしてprint結果。

YEAAAH!!! HAAAAAAAAAAAA! が対象の文字列です。パターンは a{2,} です。

置換結果:YEAH!!! HA!

2 個がマッチしました。

                • -

AAA が0件目にマッチしました。
0件目は2文字目です。
0件目の文字の長さは3 です。

                • -

AAAAAAAAAAAA が1件目にマッチしました。
1件目は11文字目です。
1件目の文字の長さは12 です。

                • -