我想弄清楚如何使用多个通配符(或其他方法,如果有人知道更好)来替换字符串数组中的多个字符。数组中的元素是电话号码和日期,(例如8675309,2015-01-20)。我试图只删除逗号和日期,以便数组中的每个元素只能是电话号码使用`.gsub!'在数组中迭代时出现多个通配符符号
当迭代数组中的每个元素时,我通过在每个元素替换单个字符时调用.gsub!
来获得预期结果。
file_data = ["8675309,2015-01-20"]
puts file_data[0] #=> 8675309,2015-01-20
file_data.each do |s|
s.gsub!(/0/, "X")
end
puts file_data[0] #> 86753X9,2X15-X1-2X
为了消除逗号和日期,我试着简单地使用通配符,调用s.gsub!(",****/**/**", "")
。然后,这表明意外的结果:(“ ”和“^”)
file_data = ["8675309,2015-01-20"]
file_data.each do |s|
s.gsub!(/,****-**-**/, "")
end
puts file_data[0] #> 8675309,2015-01-20
我也尝试已表明在其他线程其他几个通配符,但结果并没有改变。
我迷失在如何消除每个元素中的逗号和日期,同时保持主号码完好无损。我认为.gsub!
将是正确的方法,但我也愿意接受任何替代方案。任何帮助表示赞赏。
'S [0..6]'比'地图{更快| S | s [0,7]}' – Grych 2015-01-20 21:16:52