相关疑难解决方法(0)

ruby通过重复字符或空格来分割字符串

我该如何拆分这个字符串.

"6885558 8866887777" => ["6", "88", "555", "8", "88", "66", "88", "7777"] 
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它从来没有奏效.

ruby-1.8.7-p334 :020 > "111133".split(/(\d)\1+/)
 => ["", "1", "", "3"] 
Run Code Online (Sandbox Code Playgroud)

ruby regex

13
推荐指数
1
解决办法
2396
查看次数

Ruby Split String使用正则表达式区分字符

我目前正在解决一个问题,该问题涉及按每组字符分割一个字符串。

例如,

"111223334456777" #=> ['111','22','333','44','5','6','777']
Run Code Online (Sandbox Code Playgroud)

我目前的操作方式是使用枚举器,将每个字符与下一个字符进行比较,然后以这种方式拆分数组。

res = []
str = "111223334456777"
group = str[0]
(1...str.length).each do |i|
  if str[i] != str[i-1]
    res << group
    group = str[i]
  else
    group << str[i]
  end
end
res << group
res #=> ['111','22','333','44','5','6','777']
Run Code Online (Sandbox Code Playgroud)

我想看看是否可以使用正则表达式来执行此操作,这将使此过程更加容易。我知道我可以将这段代码放在一个方法中,但是我很好奇是否可以在这里使用正则表达式。

所以我想做的是

str.split(/some regex/)
Run Code Online (Sandbox Code Playgroud)

产生相同的结果。我想到了积极的前瞻性,但是我不知道如何让正则表达式认识到字符是不同的。

有谁知道这是否可行?

ruby regex string split

1
推荐指数
1
解决办法
625
查看次数

标签 统计

regex ×2

ruby ×2

split ×1

string ×1