Ruby 我怎样才能使这个gsub更好?

Ruby 我怎样才能使这个gsub更好?,ruby,regex,Ruby,Regex,我想从数组中的字符串中删除几个字符(@[]”)。目前我已经可以使用了,但是使用了3个GSUB,这是非常愚蠢的。有更好的方法吗 array_name.collect! {|name| name.to_s.gsub(/\["@/, "").gsub(/\"/, "").gsub(/\]/, "")} 如果我理解正确的话,看来你能做到 array_name.collect! { |name| name.to_s.gsub(/[@\[\]"]/, "") } 这将从数组名称中删除4个字符@,[,],

我想从数组中的字符串中删除几个字符(@[]”)。目前我已经可以使用了,但是使用了3个GSUB,这是非常愚蠢的。有更好的方法吗

array_name.collect! {|name| name.to_s.gsub(/\["@/, "").gsub(/\"/, "").gsub(/\]/, "")}

如果我理解正确的话,看来你能做到

array_name.collect! { |name| name.to_s.gsub(/[@\[\]"]/, "") }
这将从
数组名称中删除4个字符
@
[
]


如果您只想像当前方法一样删除
[“@
的整个实例,然后删除
]
的单个实例,那么您似乎需要2个
gsub
s:

array_name.collect! { |name| name.to_s.gsub(/\["@/,"").gsub(/[\"\]/,"") }

您需要两个
gsub
s的原因是,如果您首先删除所有
,它会将
[”@
的实例保留为
[@

如果您不关心顺序,只需查看
删除
函数:

array_name.map! { |name| name.to_s.delete '@[]"' }