我想从数组中的字符串中删除一些字符(@ []“”)。目前我有它的工作,但通过使用3 gsubs,这是非常愚蠢的。有更好的方法吗?
array_name.collect! {|name| name.to_s.gsub(/\["@/, "").gsub(/\"/, "").gsub(/\]/, "")}
答案 0 :(得分:1)
如果我理解正确,你似乎可以做到
array_name.collect! { |name| name.to_s.gsub(/[@\[\]"]/, "") }
这会从@
中移除4个字符[
,]
,"
,array_name
。
如果您只想删除当前方法所做的["@
的整个实例,然后删除"
和]
的各个实例,那么您似乎需要2 gsub
} S:
array_name.collect! { |name| name.to_s.gsub(/\["@/,"").gsub(/[\"\]/,"") }
您需要两个gsub
的原因是因为如果您先删除所有"
,那么它会将["@
的实例保留为[@
。
答案 1 :(得分:1)
如果您不关心订单,只需查看delete
功能:
array_name.map! { |name| name.to_s.delete '@[]"' }