文字列の一部を削除する
正規表現による削除
String#sub!
またはString#gsub!
で空文字列に置換することで、既存も文字列から正規表現にマッチした部分を削除できる。
p "foo fooo foooo".sub!(/o+/, '') #=> "f fooo foooo" p "foo fooo foooo".gsub!(/o+/, '') #=> "f f f"
特定の文字の削除
文字列から特定の文字だけを削除したいならString#delete!
を使って以下のように書ける。
p "foobarbuz".delete!('o') #=> "fbarbuz"
また連続した文字を1文字に丸めるにはString#squeeze
メソッドが使用できる。
p "foobarbuz".squeeze('o') #=> "fobarbuz"
インデックスを指定した削除
文字列のインデックスを指定してある範囲を削除するにはString#[]=
を使って以下のように書ける。
str = "0123456789" str[2, 3] = '' p str #=> "0156789"