tr!(pattern, replace) -> self | nil[permalink][rdoc][edit]tr!(hash) -> self | nil(selector source, string replacement) → self?-
pattern 文字列に含まれる文字を検索し、それを replace 文字列の対応する文字に破壊的に置き換えます。
pattern の形式は tr(1) と同じです。つまり、
a-cは a から c を意味し、 "^0-9" のように文字列の先頭が^の場合は指定文字以外が置換の対象になります。replace に対しても
-による範囲指定が可能です。-は文字列の両端にない場合にだけ範囲指定の意味になります。^も文字列の先頭にあるときにだけ否定の効果を発揮します。また、-,^, `\' はバックスラッシュ (`\') によりエスケープできます。replace の範囲が pattern の範囲よりも小さい場合は、 replace の最後の文字が無限に続くものと扱われます。
Ruby 4.1 から、String#tr と同じく Hash を 1 つだけ渡す形式も使えます。
tr! は self を変更して返しますが、置換が起こらなかった場合は nil を返します。
- [PARAM]
pattern: - 置き換える文字のパターン
- [PARAM]
replace: - pattern で指定した文字を置き換える文字
- [PARAM]
hash: - 置き換える文字(キー)と置き換え後の文字列(値)の対応
s = "hello" p s.tr!({"e" => "EE"}) # => "hEEllo" p s # => "hEEllo" p s.tr!({"z" => "E"}) # => nil[SEE_ALSO] String#tr, String#tr_s
- [PARAM]