如何在Ruby中划分字符串?

时间:2012-07-18 20:46:21

标签: ruby-on-rails ruby string

我使用Ruby 1.9.3和Rails 3.2在Ruby on Rails上工作。 我有一长串这样的话:

  foo bar香蕉坚果水果吧foobar酷酷的堆栈溢出

我想把这个字符串分成一个数组。数组的每个元素都应包含该字符串中的三个单词。我该怎么做呢?

谢谢!

3 个答案:

答案 0 :(得分:11)

o = str.split.each_slice(3).map{|a| a.join(" ")}

答案 1 :(得分:4)

string = "foo bar banana nut fruit bar foobar cool awesome stack overflow"

这将返回一个数组,其中每个项目恰好包含字符串中的三个单词:

string.scan /\w+\s+\w+\s+\w+/
# => ["foo bar banana", "nut fruit bar", "foobar cool awesome"]

如果您希望项目中的其余单词也添加到结尾:

string.scan /\w+\s*\w*\s*\w*/
# => ["foo bar banana", "nut fruit bar", "foobar cool awesome", "stack overflow"]

答案 2 :(得分:2)

对于您的例子

x = "foo bar banana nut fruit bar foobar cool awesome stack overflow"

代码:

result = x.split­(/\s+/).ea­ch_slice(3­).to_a

会将它们分组为:

[ [foo, bar, banana] [nut, fruit, bar], [foobar, cool, awesome], [stack, overflow] ]