Строка Ruby разделяет определенные символы

В Python мы можем использовать .strip() метод строки для удаления ведущих или запаздывающих случаев выбранных символов:

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

Как мы делаем это в Ruby? Ruby strip метод не берет аргументов и разделяет только пробел.

17
задан Mark Amery 4 December 2014 в 18:35
поделиться

3 ответа

В Ruby нет такого метода, но вы можете легко определить его следующим образом:

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

my_strip " [la[]la] ", " []"
#=> "la[]la"
13
ответ дан 30 November 2019 в 13:45
поделиться
"[[ ] foo [] boo ][ ]".gsub(/\A[ \[\]]+|[ \[\]]+\Z/,'') 
=> "foo [] boo"

Можно также сократить до

"[[ ] foo [] boo ][ ]".gsub(/\A[][ ]+|[][ ]+\Z/,'') 
=> "foo [] boo"
3
ответ дан 30 November 2019 в 13:45
поделиться

Попробуйте метод gsub :

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

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

и т. Д.

1
ответ дан 30 November 2019 в 13:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: