本ページには広告が含まれています。
正規表現にマッチした文字列を別の文字列に置換します。
- 構文
- String = RegExp.Replace( sourceString, replaceVar )
- 引数
- sourceString (String)必須
- 検索対象の文字列
- replaceVar 必須
- 置換するパターン
- 戻り値
使い方
RegExp.Pattern プロパティに指定した最初に見つかった文字列をreplaceVarに置換します。
以下のプログラムは2024/08/07で最初に見つかった/を-に置換します。
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")
WITH RegExp
.Pattern = "/"
PRINT .Replace("2024/08/07", "-")
ENDWITH
デフォルトでは最初に見つかった文字列しか置換されないため、文字列全体に対して置換を行うにはRegExp.Global プロパティにTrueを指定します。
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")
WITH RegExp
.Pattern = "/"
.Global = TRUE
PRINT .Replace("2024/08/07", "-")
ENDWITH
キャプチャグループ(( ))を使うことでマッチした文字列の後方参照を行うことができます。n番目の括弧に一致した部分は$nで書くことができます。
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")
WITH RegExp
.Pattern = "(\d+)/(\d+)/(\d+)"
PRINT .Replace("2024/08/07", "$1年$2月$3日")
ENDWITH
- 結果
2024年08月07日
キャプチャグループの数を超えた後方参照を行った場合、そのまま文字列として出力されます。以下の場合キャプチャグループは3つしかないので$4はそのまま出力されます。
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")
WITH RegExp
.Pattern = "(\d+)/(\d+)/(\d+)"
PRINT .Replace("2024/08/07", "$1年$2月$3日$4")
ENDWITH