VBScript: 正規表現による置換 Replace
VBScriptで正規表現による置換を行う場合は、
RegExpオブジェクトのReplaceメソッドを使用します。
(正規表現というのは文字列のパターン表記方法で、
一般的に良く使われるワイルドカード「*」という記号も正規表現の1つです。)
RegExpオブジェクトのReplaceメソッドの書式は次の通りです。
書式
RegExpオブジェクト.Replace(対象文字列, 置換文字列)
戻り値は置換後の文字列です。
Replaceメソッドを実行する前に、 Patternプロパティで検索パターンを設定しておきます。
RegExpオブジェクト.Pattern = 検索パターン
次のサンプルコードでは、 検索対象文字列を「bat,cat,but,cut,cap」とし、 パターン「c.t」にマッチする文字列を「zzz」に置換しています。
Executeメソッドを実行する前に「Pattern」プロパティ、 「Global」プロパティ、「IgnoreCase」プロパティを設定しています。
' 検索対象 str = "bat,cat,but,cut,cap" ' パターン strPattern = "c.t" ' RegExpオブジェクト Set objRe = New RegExp ' パターン objRe.Pattern = strPattern ' 全体を検索 objRe.Global = True ' 大文字小文字を区別しない objRe.IgnoreCase = True ' 置換 strNew = objRe.Replace(str, "zzz") WScript.Echo strNew
実行結果
bat,zzz,but,zzz,cap
「c.t」にマッチする「cat」と「cut」の部分が「zzz」に置換されています。
Replaceを使った置換(削除)のサンプルコード
もう一つサンプルコードを載せておきます。
次のサンプルコードでは、 検索対象文字列を「<div><b>hello</b></div>」とし、 パターン「<.?b>」にヒットする文字列を空の文字列("")に置換します。
空の文字列("")に置換するのは削除と同じですから、 「bタグを取り除く」ということです。
' 検索対象 str = "hello" ' パターン strPattern = "<.?b>" ' RegExpオブジェクト Set objRe = New RegExp ' パターン objRe.Pattern = strPattern ' 全体を検索 objRe.Global = True ' 大文字小文字を区別しない objRe.IgnoreCase = True ' 置換 strNew = objRe.Replace(str, "") WScript.Echo strNew
実行結果
<div>hello</div>
このように、 正規表現の置換機能を使って特定のタグを削除することもできます。