我有下一个字符串:
txt = "HwwwwjjaoHHHHaffgd"
Run Code Online (Sandbox Code Playgroud)
我需要通过对相同的连续字符进行分组来形成一个数组:
["H" "wwww" "jj" "a" "o" "HHHH" "a" "ff" "g" "d"]
Run Code Online (Sandbox Code Playgroud)
这有几种方法可以做到这一点.
txt = "Hwwww||333jjao{{\\HHHH@@affg//d"
txt.split(/(?<=(.))(?!\1)/).each_slice(2).map(&:first)
txt.each_char.slice_when(&:!=).map(&:join)
txt.each_char.chunk(&:itself).map { |_,a| a.join }
txt.each_char.chunk_while(&:==).map(&:join)
txt.gsub(/(?<=(.))(?!\1)/, ' ').split
txt.gsub(/(.)\1*/).reduce([], &:<<)
txt[1..-1].each_char.with_object([txt[0]]) {|c,a| a.last[-1]==c ? (a.last<<c) : a << c}
Run Code Online (Sandbox Code Playgroud)
以上都归来了
["H", "wwww", "||", "333", "jj", "a", "o", "{{", "\\", "HHHH", "@@", "a",
"ff", "g", "//", "d"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |