17

Python では、文字列のメソッドを使用して.strip()、選択した文字の先頭または末尾の出現を削除できます。

>>> print " (Removes (only) leading & trailing brackets & ws ) ".strip(" ()")
'Removes (only) leading & trailing brackets & ws'

Ruby でこれを行うにはどうすればよいでしょうか。Ruby のstripメソッドは引数を取らず、空白のみを取り除きます。

4

7 に答える 7

14

ruby にはそのようなメソッドはありませんが、次のように簡単に定義できます。

def my_strip(string, chars)
  chars = Regexp.escape(chars)
  string.gsub(/\A[#{chars}]+|[#{chars}]+\z/, "")
end

my_strip " [la[]la] ", " []"
#=> "la[]la"
于 2010-07-02T13:20:43.777 に答える
3
"[[ ] foo [] boo ][ ]".gsub(/\A[ \[\]]+|[ \[\]]+\Z/,'') 
=> "foo [] boo"

に短縮することもできます

"[[ ] foo [] boo ][ ]".gsub(/\A[][ ]+|[][ ]+\Z/,'') 
=> "foo [] boo"
于 2010-07-02T13:42:46.580 に答える
1

gsubメソッドを試してください:

irb(main):001:0> "[foo ]".gsub(/\As+[/,'')
=> "foo ]"

irb(main):001:0> "foo ]".gsub(/s+]\Z/,'')
=> "foo"

于 2010-07-02T13:19:21.153 に答える
-1

メソッドを試してくださいString#delete:(1.9.3で利用可能、他のバージョンについては不明)

元:

    1.9.3-p484 :003 > "hehhhy".delete("h")
     => "ey"
于 2014-01-31T16:55:47.900 に答える