Ruby 我怎样才能使这个gsub更好?
我想从数组中的字符串中删除几个字符(@[]”)。目前我已经可以使用了,但是使用了3个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个字符@,[,],
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 '@[]"' }