我只是想知道是否有任何方法从另一个字符串删除字符串? 就像这样:
class String
def remove(s)
self[s.length, self.length - s.length]
end
end
我只是想知道是否有任何方法从另一个字符串删除字符串? 就像这样:
class String
def remove(s)
self[s.length, self.length - s.length]
end
end
当前回答
str.gsub("subString", "")呢? 看看Ruby Doc
其他回答
如果你正在使用rails或较少的activesupport,你得到String#remove和String#remove!方法
def remove!(*patterns)
patterns.each do |pattern|
gsub! pattern, ""
end
self
end
来源:http://api.rubyonrails.org/classes/String.html method-i-remove
如果你只有一个目标字符串的出现,你可以使用:
str[target] = ''
or
str.sub(target, '')
如果目标使用多次出现:
str.gsub(target, '')
例如:
asdf = 'foo bar'
asdf['bar'] = ''
asdf #=> "foo "
asdf = 'foo bar'
asdf.sub('bar', '') #=> "foo "
asdf = asdf + asdf #=> "foo barfoo bar"
asdf.gsub('bar', '') #=> "foo foo "
如果需要就地替换,请使用“!”版本的gsub!和子!
Ruby是2。5 +。
如果你的子字符串位于字符串的开头或结尾,那么Ruby 2.5引入了这样的方法:
Delete_prefix用于从字符串的开头删除子字符串 Delete_suffix用于从字符串末尾删除子字符串
如果它是字符串的结尾,你也可以使用chomp:
"hello".chomp("llo") #=> "he"
str.gsub("subString", "")呢? 看看Ruby Doc