如果我有以下陣列...在Ruby陣列
["a =>", "b => c", "c => f", "d => a", "e => b", "f =>"]
會如何,我得到它返回一個字符串元素刪除不想要的字符...
["a", "b", "c", "c", "f", "d", "a", "e", "b", "f"]
我認爲遍歷與.map
&使用.tr
或.gsub
,但我永遠不能得到完全正確......
如果我有以下陣列...在Ruby陣列
["a =>", "b => c", "c => f", "d => a", "e => b", "f =>"]
會如何,我得到它返回一個字符串元素刪除不想要的字符...
["a", "b", "c", "c", "f", "d", "a", "e", "b", "f"]
我認爲遍歷與.map
&使用.tr
或.gsub
,但我永遠不能得到完全正確......
["a =>", "b => c", "c => f", "d => a", "e => b", "f =>"].join.gsub(/=>| /, '').chars
# => ["a", "b", "c", "c", "f", "d", "a", "e", "b", "f"]
["a =>", "b => c", "c => f", "d => a", "e => b", "f =>"].join.gsub(/[^a-z]/, '').chars
# => ["a", "b", "c", "c", "f", "d", "a", "e", "b", "f"]
所以我加入串在一起(Array#join),代替你不爲空字符串(String#gsub)要字符,結果字符串分割成其字符(String#chars)。
你假定沒有元素'「ab => c」'。我們知道嗎? –
這應該做的伎倆:
arr = ["a =>", "b => c", "c => f", "d => a", "e => b", "f =>"]
arr.join(' ').scan(/\w/)
OR
arr.join(' ').scan(/\w+/)
=> ["a", "b", "c", "c", "f", "d", "a", "e", "b", "f"]
有一個不錯的網站叫做Rubular(http://rubular.com/),您可以交互地測試出各種對字符串的正則表達式。它還列出了「Regex快速參考」,因此您可以瞭解您經常在Ruby代碼中看到的正則表達式。
根據可能的數組形式和期望的返回值,這兩個問題都沒有被問題弄清楚,您可以執行以下操作。
arr = ["a_1 =>", "b 2 => cc3", "cc3 => f6", "d4 => a_1", "e5 => b 2", "f6 =>"]
arr.flat_map { |str| str.split /\s*=>\s*/ }
#=> ["a_1", "b 2", "cc3", "cc3", "f6", "d4", "a_1", "e5", "b 2", "f6"]
沒有給出日期的其他答案返回此數組的相同值。
可推測,你的數組就是一個例子。它看起來像這樣:'[「ab => cd」,「cd => ef」,...]'? –
很少能就一個例子問一個明確的問題。我假設你的數組是一個例子,因爲如果它涉及單個特定的數組,那麼它就沒有什麼可做的。讀者需要知道數組的可能形式和期望的返回值。例如,一些答案假設,如在示例中一樣,數組中的每個元素都是''x => y「'形式,其中''x'是小寫字母,'y'是空字符串或空格後跟一個小寫字母。還有其他的可能嗎?你需要用言語陳述你的問題,並用實例來澄清。 –