VBScript: 文字列を置換する Replace()
VBScriptで文字列の一部を置換する場合は、 Replace()関数を使用します。
Replace()関数の書式は次の通りです。
Replace(文字列, 検索キーワード, 置換後文字列 [, 開始位置 [, 置換回数 [, 比較モード]]])
「文字列」から「検索キーワード」を検索し、 「置換後文字列」に置換した結果を返します。
「開始位置」、「置換回数」、「比較モード」は省略可能です。
「開始位置」を省略すると先頭から検索します。
「置換回数」には-1以上の値を指定し、省略するとすべての候補が置換されます
(-1を指定した場合と同じ)。
「比較モード」を省略すると下表のバイナリーモードでの置換となります。
定数 | 値 | 概要 |
---|---|---|
vbBinaryCompare | 0 | 大文字小文字を区別する(バイナリーモード) |
vbTextCompare | 1 | 大文字小文字を区別しない(テキストモード) |
Replace関数の使い方
次のサンプルコードは、文字列"abc"を"xyz"に変換しています。 開始位置、置換回数、 比較モードを指定した場合の置換結果の違いが確認できます。
str = "abc-def-abc-def" ' すべて置換 WScript.Echo Replace(str, "abc", "xyz") ' xyz-def-xyz-def ' 開始位置を指定 WScript.Echo Replace(str, "abc", "xyz", 5) ' def-xyz-def ' 1回のみ置換 WScript.Echo Replace(str, "abc", "xyz", 1, 1) ' xyz-def-abc-def ' vbBinaryCompare WScript.Echo Replace(str, "ABC", "xyz", 1, -1, 0) ' abc-def-abc-def ' vbTextCompare WScript.Echo Replace(str, "ABC", "xyz", 1, -1, 1) ' xyz-def-xyz-def
使用例:複数の置換
次に、Replace関数を使って複数の文字列を置き換える方法を紹介します。このスクリプトは、テキスト内の「cat」を「dog」に、「mouse」を「elephant」に置き換えます。
' 複数の置換を行う例
Dim text, newText
text = "The cat and the mouse."
newText = Replace(text, "cat", "dog")
newText = Replace(newText, "mouse", "elephant")
' 結果を表示
WScript.Echo newText ' 出力: "The dog and the elephant."
Replace関数の使用シナリオ
Replace関数は、以下のようなシナリオで役立ちます。
- 文章の特定の単語を一括で置き換える場合
- データのフォーマットを変更する場合
- ユーザー入力のバリデーションを行う場合