10

我有一个字符串,我正在使用 .split(' ') 将字符串拆分为单词数组。我可以使用类似的方法将字符串拆分为 2 个单词的数组吗?

返回一个数组,其中每个元素都是一个单词:

words = string.split(' ')

我希望返回一个数组,其中每个元素都是 2 个单词。

4

5 回答 5

7
str = 'one two three four five six seven'
str.split.each_slice(2).map{|a|a.join ' '}
=> ["one two", "three four", "five six", "seven"]

这也处理奇数个单词的情况。

于 2013-04-10T00:07:02.053 回答
4

你可以做

string= 'one1! two2@ three3# four4$ five5% six6^ sev'
string.scan(/\S+ ?\S*/)
# => ["one1! two2@", "three3# four4$", "five5% six6^", "sev"]
于 2013-04-10T00:31:28.573 回答
3

像这样的东西应该工作:

string.scan(/\w+ \w+/)
于 2013-04-10T00:05:57.223 回答
2

Rubyscan对此很有用:

'a b c'.scan(/\w+(?:\s+\w+)?/)
=> ["a b", "c"]

'a b c d e f g'.scan(/\w+(?:\s+\w+)?/)
=> ["a b", "c d", "e f", "g"]
于 2013-04-10T04:11:04.663 回答
2

这就是我所要做的:

def first_word
    chat = "I love Ruby"
    chat = chat.split(" ")
    chat[0]
end
于 2014-11-22T04:53:49.540 回答