[ruby-list:46555] Re: 質問:最も簡単かつ短い記述で文字列中から文字列を削除する方法は?

From: rubikitch@...
Date: 2009-11-15 11:11:37 UTC
List: ruby-list #46555
From: 長尾 賢志 <gao@ipc-tokai.or.jp>
Subject: [ruby-list:46554] 質問:最も簡単かつ短い記述で文字列中から文字列を削除する方法は?
Date: Sun, 15 Nov 2009 20:01:20 +0900

るびきちです。

> String#|gsub(pattern, replace)または
> String#||sub(pattern, replace)を使用して、

#||の記法がよくわかりませんが…

さておき。

> つまり、gsubやsubは、
> |String#|gsub(pattern, replace = '')|
> |String#||sub(pattern, replace = '')
> と定義されていたらうれしいなーと思ったわけです。

subはsubstitute(置換)の略だと思いますが、デフォルト値を空文字列にする
意味がよくわかりません。「AをBに置換する」ならわかりますが、「Aを置換す
る」では「何を置換するの?」となりますね。

> 「"ABACAD".sub('AC', '')より短い記述方法があれば教えて下さい。」

破壊的になりますが String#[]= や String#slice! が使えます。
ただ、あまり使われていないようなので、素直にgsubでいいと思います。

s = "ABACAD"
s.slice!('AC')           # => "AC"
s                        # => "ABAD"

s = "ABACAD"
s['AC']=""               # => ""
s                        # => "ABAD"

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/
Twit: http://twitter.com/rubikitch/
『Ruby逆引きハンドブック』 http://d.hatena.ne.jp/rubikitch/20090525/rubybook

In This Thread