回答
我會用的是gsub
。
irb(main):001:0> s = "a=b&c=d&e=f&g=h"
=> "a=b&c=d&e=f&g=h"
irb(main):004:0> s.gsub(/[\=\&]/, " ").split()
=> ["a", "b", "c", "d", "e", "f", "g", "h"]
所以,我們在這裏所做的是用一個空格替換的=
和&
所有出現。然後我們只需split
這個字符串。
分裂FTW(即這樣做的最直接的,簡單的方法是):濫用紅寶石的
irb(main):001:0> s = "a=b&c=d&e=f&g=h"
=> "a=b&c=d&e=f&g=h"
irb(main):002:0> s.split(/[=&]/)
=> ["a", "b", "c", "d", "e", "f", "g", "h"]
其他有趣的方式:
irb(main):001:0> s = "a=b&c=d&e=f&g=h"
=> "a=b&c=d&e=f&g=h"
irb(main):002:0> s.split('=').collect{|x| x.split('&')}.flatten
=> ["a", "b", "c", "d", "e", "f", "g", "h"]
irb(main):003:0> ['=','&'].inject(s) {|t, n| t.split(n).join()}.split('')
=> ["a", "b", "c", "d", "e", "f", "g", "h"]
還要檢查卡里的和GamesBrainiac對更多的選擇答案:)
感謝!我對紅寶石有些生疏,我不知道你能做到這一點。 –
肯定:http://ruby-doc.org/core-2.2.0/String.html#method-i-split – Mircea
您可以取代'collect'和'flatten'用'flat_collect',呃,我的意思是[可枚舉#flat_map](http://ruby-doc.org/core-2.2.0/Enumerable.html#method-i-flat_map)。 –
你可以很容易地用這樣的事情做一個哈希:
myHash = {}
strSplit = "a=b&c=d&e=f&g=h".split("&")
for pair in strSplit
keyValueSplit = pair.split("=")
myHash[keyValueSplit[0]] = keyValueSplit[1]
end
myHash
看起來像這樣到底{"a"=>"b", "c"=>"d", "e"=>"f", "g"=>"h"}
@ MIREA的回答是最好的,但這裏的另一個:
s = "a=b&c=d&e=f&g=h"
s.scan /[a-z]/
#=> ["a", "b", "c", "d", "e", "f", "g", "h"]
正則表達式可以作爲必修課的調整。例如:
"123a=b&c=d&E=f&g=h".scan /[A-Za-z0-9]/
#=> ["1", "2", "3", "a", "b", "c", "d", "E", "f", "g", "h"]
或
"1-2-3a=$b&c=d&e=f&g=h".scan /[^=&]/
#=> ["1", "-", "2", "-", "3", "a", "$", "b", "c", "d", "e", "f", "g", "h"]
等。
如果字符的字符串所需的只是追加+
的字符類:
"123a=b&ccc=d&E=f&gg=h".scan /[A-Za-z0-9]+/
#=> ["123a", "b", "ccc", "d", "E", "f", "gg", "h"]
如果字符串中的示例所示的交流形式,這些工作還有:
(0..s.size).step(2).map { |i| s[i] }
#=> ["a", "b", "c", "d", "e", "f", "g", "h"]
s.each_char.each_slice(2).map(&:first)
#=> ["a", "b", "c", "d", "e", "f", "g", "h"]
- 1. 如何將散列數組轉換爲散列值數組?
- 2. 如何將下列數組轉換爲散列?
- 3. 如何將數組轉換爲Perl中的散列?
- 4. 如何將字符串轉換爲散列或將其添加到散列
- 5. 如何將以下內容從VB轉換爲C#.net?
- 6. 如何將以下內容轉換爲尾遞歸過程?
- 7. 你會如何將以下內容轉換爲yii2
- 8. 如何將單元格數組內容轉換爲序數值?
- 9. 如何將一個散列轉換爲另一個散列?
- 10. 如何將數組內容轉換爲單個字符串C
- 11. 如何將數組轉換爲列表
- 12. 如何將表列轉換爲數組?
- 13. 將var數據轉換爲散列表
- 14. 如何將散列表向下轉換爲抽象類對象
- 15. 散列和數組的Perl散列 - 打印數組內容
- 16. 如何將html內容轉換爲pdf?
- 17. 將PHP數組轉換爲JS數組(無需編寫內容)
- 18. 將HTML內容轉換爲列表
- 19. 如何將以下代碼轉換爲二維數組?
- 20. 在紅寶石中將散列數組轉換爲單個散列
- 21. PowerShell將輸出轉換爲散列表數組(數據類型轉換)
- 22. 將參數或HashWithIndifferentAccess中的值轉換爲可用的散列
- 23. 以數組轉換爲散列紅寶石
- 24. 如何將一個ActiveRecord關係數組轉換爲一個散列的參數?
- 25. 如何分割字符串數組並將其轉換爲散列數
- 26. 在ruby中智能地將散列數組轉換爲CSV
- 27. 將目錄數組轉換爲特定的嵌套散列
- 28. 將數組轉換爲自定義格式的散列
- 29. 將數組轉換爲數組列表?
- 30. 散列內容,然後轉換爲十六進制結果
你通過某種網絡請求來做到這一點?在那裏,是那些查詢參數? – Makoto
不,它不是查詢字符串,它是來自某個web post的響應 –