本ページには広告が含まれています。
目次
文字列の一部を置換します。文字の位置ではなく文字を置換したい場合はREPLACE関数 (スクリプト関数)を使います。
- 構文
- String = substrReplace( string, replace, offset, length )
- 引数
- string 必須
- 置換したい文字列を含んだ文字列
- replace 必須
- 置換する文字列
- offset 必須
- 置換開始位置を1から指定。正の数の場合、置換はstringのoffset文字目から始まります。負の数の場合、置換はstringの終端文字からoffset文字目から始まります。
- length 省略可
- 正の数の場合、置換される部分の長さを表します。負の数の場合、置換を停止する位置がstringの終端から何文字目かを表します。この引数が省略された場合、stringの終端まで置換されることになります。lengthが0の場合、stringからoffsetの位置にreplaceが挿入されます。
- 戻り値
- 結果の文字列
プログラム
//////////////////////////////////////////////////
// 【引数】
// 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文字目以降を#に置換します。
PRINT substrReplace("123456789", "#", 4)
- 結果
123#
置換開始位置から指定した文字数の範囲を置換
123456789の4文字目から3文字を#に置換します。456が#に置換されます。
PRINT substrReplace("123456789", "#", 4, 3)
- 結果
123#789
置換開始位置を後ろからの位置で指定
後ろから2文字目以降をXXに置換します。
PRINT substrReplace("abcdefg", "XX", -2)
- 結果
abcdeXX
置換開始位置と置換終了位置を指定
3文字目から後ろ2文字目までを削除します。
PRINT substrReplace("abcdefg", "", 3, -2)
- 結果
abg
指定した位置に文字を挿入
3文字目に:を挿入します。
PRINT substrReplace("1300", ":", 3, 0)
- 結果
13:00
関連記事
- REPLACE関数 (スクリプト関数)
- reReplace関数 (自作関数)
- 正規表現置換を行います。
- BETWEENSTR関数 (スクリプト関数)
- LENGTH関数 (スクリプト関数)
- STRCONV関数 (スクリプト関数)
- strPad関数 (自作関数)
- 指定した長さまで、文字列の左側または右側を他の文字列で埋めます。