首先发布这里很抱歉,如果这是菜鸟材料。我正在尝试将一个复杂的数组破解成一个字符串,我在删除'\'和'''字符时遇到了问题。感谢任何帮助。
目前我有这个:
"\"-6,\", \"\\\"-3-\\\", \\\"1\\\"\", \"\\\"3-\\\", \\\"5\\\"\", \"\\\"7-\\\", \\\"11\\\"\", \"\\\"14-\\\", \\\"15\\\"\", \"\\\"17-\\\", \\\"20\\\"\""
当我想要这个时:
"-6, -3-, 1, 3-, 5, 7-, 11, 14-, 15, 17-, 20"
谢谢!
答案 0 :(得分:1)
您可以尝试使用each
并删除主数组中每个值中的任何不需要的字符,例如:
array.each{|x| x.gsub!(/[^0-9-,]/, '') }.to_s.gsub!(',,', ',')
# => ["-6,-3-,1,3-,5,7-,11,14-,15,17-,20"]
这将获取主数组,并且对于每个值,它使用''
正则表达式和{{1}替换任何不是数字的字符,也不替换带有/[^0-9-,]/
的连字符或逗号方法,第二个gsub!
是替换第一个修改中剩余的双逗号。
我知道并不是那么优雅,但可以帮助你。
答案 1 :(得分:1)
使用String#tr代替gsub
,因为tr
比gsub
快得多:
arr.select { |x| x.tr!('\\\"',''); x unless x.empty? }.join(",")
答案 2 :(得分:0)
我假设你有一个像:
这样的数组 Arr = [-6, -3-, 1, 3-, 5, 7-, 11, 14-, 15, 17-, 20]
所以尝试join
方法:
Arr.join(',')
希望它有所帮助..
答案 3 :(得分:0)
您可以使用:
myArray.map { |item| item.gsub(/\\|"/, "") }.join(",").gsub(",,", ",")