我正在使用 Ruby on Rails 和 Ruby 1.9.3 和 Rails 3.2 工作。我有一长串这样的词:
foo bar 香蕉坚果水果吧 foobar 酷酷的堆栈溢出
我想把这个字符串分成一个数组。数组的每个元素都应包含此字符串中的三个单词。我该怎么做呢?
谢谢!
我正在使用 Ruby on Rails 和 Ruby 1.9.3 和 Rails 3.2 工作。我有一长串这样的词:
foo bar 香蕉坚果水果吧 foobar 酷酷的堆栈溢出
我想把这个字符串分成一个数组。数组的每个元素都应包含此字符串中的三个单词。我该怎么做呢?
谢谢!
o = str.split.each_slice(3).map{|a| a.join(" ")}
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"]
对于您给定的示例
x = "foo bar banana nut fruit bar foobar cool awesome stack overflow"
编码:
result = x.split(/\s+/).each_slice(3).to_a
将它们分组为:
[ [foo, bar, banana] [nut, fruit, bar], [foobar, cool, awesome], [stack, overflow] ]