【发布时间】:2015-01-20 20:58:23
【问题描述】:
我试图弄清楚如何使用多个通配符替换字符串数组中的多个字符(如果有人知道的话,也可以使用其他方法。)数组中的每个元素都是电话号码和日期,(例如 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! 将是正确的方法,但我也愿意接受任何替代方法。任何帮助表示赞赏。
【问题讨论】:
标签: ruby arrays regex gsub string-substitution