substrReplace関数

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

文字列の一部を置換します。文字の位置ではなく文字を置換したい場合はREPLACE関数 (スクリプト関数)を使います。

構文
  1. String = substrReplace( string, replace, offset, length )
引数
string 必須
置換したい文字列を含んだ文字列
replace 必須
置換する文字列
offset 必須
置換開始位置を1から指定。正の数の場合、置換はstringoffset文字目から始まります。負の数の場合、置換はstringの終端文字からoffset文字目から始まります。
length 省略可
正の数の場合、置換される部分の長さを表します。負の数の場合、置換を停止する位置がstringの終端から何文字目かを表します。この引数が省略された場合、stringの終端まで置換されることになります。length0の場合、stringからoffsetの位置にreplaceが挿入されます。
戻り値
結果の文字列

プログラム

UWSC
//////////////////////////////////////////////////
// 【引数】
//   string : 置換したい文字列を含んだ文字列 
//   replace : 置換する文字列 
//   offset : 置換開始位置を1から指定。正の数の場合、置換はstringのoffset文字目から始まります。負の数の場合、置換はstringの終端文字からoffset文字目から始まります。 
//   length : 正の数の場合、置換される部分の長さを表します。負の数の場合、置換を停止する位置がstringの終端から何文字目かを表します。この引数が省略された場合、stringの終端まで置換されることになります。lengthが0の場合、stringからoffsetの位置にreplaceが挿入されます。 
// 【戻り値】
//   結果の文字列 
//////////////////////////////////////////////////
FUNCTION substrReplace(string, replace, offset, length = EMPTY)
	IF offset < 0 THEN offset = LENGTH(string) + offset + 1
	SELECT TRUE
		CASE length = EMPTY
			RESULT = COPY(string, 1, offset - 1) + replace
		CASE length >= 0
			RESULT = COPY(string, 1, offset - 1) + replace + COPY(string, offset + length)
		CASE length < 0
			RESULT = COPY(string, 1, offset - 1) + replace + COPY(string, LENGTH(string) + length + 2)
	SELEND
FEND

使い方

置換開始位置以降の文字列を置換

123456789の4文字目以降を#に置換します。

UWSC
PRINT substrReplace("123456789", "#", 4)
結果
プレーンテキスト
123#

置換開始位置から指定した文字数の範囲を置換

123456789の4文字目から3文字を#に置換します。456#に置換されます。

UWSC
PRINT substrReplace("123456789", "#", 4, 3)
結果
プレーンテキスト
123#789

置換開始位置を後ろからの位置で指定

後ろから2文字目以降をXXに置換します。

UWSC
PRINT substrReplace("abcdefg", "XX", -2)
結果
プレーンテキスト
abcdeXX

置換開始位置と置換終了位置を指定

3文字目から後ろ2文字目までを削除します。

UWSC
PRINT substrReplace("abcdefg", "", 3, -2)
結果
プレーンテキスト
abg

指定した位置に文字を挿入

3文字目に:を挿入します。

UWSC
PRINT substrReplace("1300", ":", 3, 0)
結果
プレーンテキスト
13:00

関連記事

REPLACE関数 (スクリプト関数)
reReplace関数 (自作関数)
正規表現置換を行います。
BETWEENSTR関数 (スクリプト関数)
LENGTH関数 (スクリプト関数)
STRCONV関数 (スクリプト関数)
strPad関数 (自作関数)
指定した長さまで、文字列の左側または右側を他の文字列で埋めます。