我试图从包含给定子字符串的对象属性中删除所有空格。例如,我有一个对象event
和属性:4IP2
,3IP5
,2IP1
。我想做以下事情:
event[4IP2].gsub(/\s+/, '')
以通用方式,即
event[*IP*].gsub(/\s+/, '')
适用于所有属性4IP2
,3IP5
,2IP1
。感谢任何帮助。
答案 0 :(得分:1)
假设event
是一个哈希值,你可以去:
▶ event = { '4IP2' => 'a b c', '3GG5' => 'ffff f', '2IP1' => 'ggg ' }
▶ event.map { |k, v| [k, /IP/ =~ k ? v.delete(' ') : v] }.to_h
#⇒ { "2IP1" => "ggg", "3GG5" => "ffff f", "4IP2" => "abc" }
答案 1 :(得分:0)
如果要原位替换属性:
event.each {|k,v| v.gsub!(/\s+/, '') if /IP/ =~ k}
否则,要创建副本:
Hash[event.map {|k,v| [k, /IP/ =~ k ? v.gsub(/\s+/, '') : v]}]