ruby收集字符串中的第一个和最后一个单词

时间:2013-08-28 16:11:43

标签: ruby

我有一个字符串数组,每个字符串都有任意单词和任意数量的单词。对于每个字符串,我只需要收集第一个和最后一个字。我可以先做或最后做:

a = vs.split("\n").
    select { |i| i =~ /^\s+\d/ }.
    collect { |i| i.scan(/\w+/).<first or last> }

但不是第一个和最后一个。有什么建议吗?

2 个答案:

答案 0 :(得分:9)

Array#values_at应该这样做:

str = "a b c d e"
str.scan(/\w+/).values_at(0, -1)
#=> ["a", "e"]

答案 1 :(得分:1)

您也可以执行以下操作:

str = "I am a boy"
[str[/^\w+/],str[/\w+$/]]
# => ["I", "boy"]