我试图弄清楚如何通过使用多个通配符(或者如果有人知道更好的其他方法)来替换字符串数组中的多个字符。数组中的每个元素都是电话号码和日期,(例如 8675309,2015- 01-20)。我试图仅删除逗号和日期,以便数组中的每个元素仅是电话号码
当迭代数组中的每个元素时,我通过在.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!
这是正确的方法,但也对任何替代方法持开放态度。任何帮助表示赞赏。