a=b&c=d&e=f&g=h
Run Code Online (Sandbox Code Playgroud)
如何将其提取到 [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"]
Run Code Online (Sandbox Code Playgroud)
其他有趣的滥用Ruby的方法:
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"]
Run Code Online (Sandbox Code Playgroud)
还可以查看Cary和GamesBrainiac的答案以获得更多选择:)