Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Stringクラス > []=

instance method String#[]=

self[nth] = val

nth 番目のバイトを文字列 val で置き換えます。

val が 0 から 255 の範囲の整数である場合、 文字コードとみなしてその文字で置き換えます。

[PARAM] nth:
置き換えたいバイトのインデックス
[PARAM] val:
指定バイトと置き換える文字列もしくはバイト
[RETURN]
val を返します。

例:

buf = "string"
buf[1] = "!!"
p buf   # => "s!!ring"
self[nth, len] = val

nth バイト番目から長さ len バイトの部分文字列を文字列 val で置き換えます。

len が0 の場合は、単にnthの位置から文字列の追加が行われます。 nth が負の場合は文字列の末尾から数えます。

[PARAM] nth:
置き換えたい部分文字列の開始インデックス
[PARAM] len:
置き換えたい部分文字列の長さ
[PARAM] val:
指定範囲の部分文字列と置き換える文字列
[RETURN]
val を返します。

例:

buf = "string"
buf[1, 4] = "!!"
p buf   # => "s!!g"

buf = "string"
buf[1, 0] = "!!"
p buf   # => "s!!tring"
self[substr] = val

文字列中の substr に一致する最初の部分文字列を文字列 val で置き換えます。

[PARAM] substr:
置き換えたい部分文字列のパターンを示す文字列
[PARAM] val:
指定範囲の部分文字列と置き換える文字列
[RETURN]
val を返します。
[EXCEPTION] IndexError:
self が部分文字列 substr を含まない場合に発生します。

例:

buf = "string"
buf["trin"] = "!!"
p buf   # => "s!!g"

buf = "string"
buf["nosuchstring"] = "!!"   # IndexError
self[regexp, nth] = val

正規表現 regexp の nth 番目の括弧にマッチする 最初の部分文字列を文字列 val で置き換えます。

nth が 0 の場合は、マッチした部分文字列全体を val で置き換えます。

[PARAM] regexp:
置き換えたい部分文字列のパターンを示す正規表現
[PARAM] nth:
置き換えたい部分文字列のパターンを示す正規表現レジスタの番号
[PARAM] val:
指定範囲の部分文字列と置き換えたい文字列
[RETURN]
val を返します。
[EXCEPTION] IndexError:
正規表現がマッチしなかった場合に発生します。

例:

buf = "def exec(cmd)"
buf[/def\s+(\w+)/, 1] = "preprocess"
p buf    # => "def preprocess(cmd)"
self[regexp] = val

正規表現 regexp にマッチした部分文字列全体を val で置き換えます。

[PARAM] regexp:
置き換えたい部分文字列のパターンを示す正規表現
[PARAM] val:
置き換えたい文字列
[RETURN]
val を返します。
[EXCEPTION] IndexError:
正規表現がマッチしなかった場合に発生します。

例:

buf = "string"
buf[/tr../] = "!!"
p buf   # => "s!!g"
self[range] = val

rangeで指定したインデックスの範囲に含まれる部分文字列を文字列 val で置き換えます。

[PARAM] range:
置き換えたい範囲を示す Range オブジェクト
[RETURN]
val を返します。
class String