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

From: 長尾 賢志 <gao@...>
Date: 2009-11-15 11:01:20 UTC
List: ruby-list #46554
はじめに:
初めて投稿します。長尾 賢志と申します。
メーリングリストを利用するのは初めてですので、
不適切な点などがありましたら指摘お願いします。

質問内容:
文字列中から文字列を削除したいのですが、
String#|delete!(str)|は、strに指定した文字列のうち、
1文字単位で該当する文字を削除してしまいます。

"ABACAD".delete('AC') -> "BD"

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

"ABACAD".sub('AC', '') -> "ABAD"

とすることで可能ですが、それなら

||"ABACAD".sub('ABAD') -> "ABAD"|
|
ができてもいいのではないかと思いました。
(実際は第2引数が無いと怒られてしまいます。)

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

そこで、こういったシンタックスが利用できるメソッドが、
どこか他で定義されているのではないかと思い探してみたのですが、
見つかりませんでした。

質問です。
「"ABACAD".sub('AC', '')より短い記述方法があれば教えて下さい。」
「また、無さそうであれば、あきらめるか自作(といっても簡単なラップ)します
ので情報下さい。」
|
よろしくお願いします。

In This Thread

Prev Next