我怎样才能让这个gsub变得更好?

时间:2014-03-11 04:00:36

标签: ruby regex

我想从数组中的字符串中删除一些字符(@ []“”)。目前我有它的工作,但通过使用3 gsubs,这是非常愚蠢的。有更好的方法吗?

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

2 个答案:

答案 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 '@[]"' }