我想弄清楚如何使用多個通配符(或其他方法,如果有人知道更好)來替換字符串數組中的多個字符。數組中的元素是電話號碼和日期,(例如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