RegExp.Replaceリプレイス メソッド

本ページには広告が含まれています。

正規表現にマッチした文字列を別の文字列に置換します。

構文
  1. String = RegExp.Replace( sourceString, replaceVar )
引数
sourceString (String)必須
検索対象の文字列
replaceVar 必須
置換するパターン
戻り値

使い方

RegExp.Pattern プロパティに指定した最初に見つかった文字列をreplaceVarに置換します。

以下のプログラムは2024/08/07で最初に見つかった/-に置換します。

UWSC
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")

WITH RegExp
	.Pattern = "/"
	PRINT .Replace("2024/08/07", "-")
ENDWITH

デフォルトでは最初に見つかった文字列しか置換されないため、文字列全体に対して置換を行うにはRegExp.Global プロパティTrueを指定します。

UWSC
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")

WITH RegExp
	.Pattern = "/"
	.Global = TRUE
	PRINT .Replace("2024/08/07", "-")
ENDWITH

キャプチャグループ(( ))を使うことでマッチした文字列の後方参照を行うことができます。n番目の括弧に一致した部分は$nで書くことができます。

UWSC
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はそのまま出力されます。

UWSC
DIM RegExp = CREATEOLEOBJ("VBScript.RegExp")

WITH RegExp
	.Pattern = "(\d+)/(\d+)/(\d+)"
	PRINT .Replace("2024/08/07", "$1年$2月$3日$4")
ENDWITH