Ruby split数组然后返回基于pattern的第一个元素

时间:2014-11-26 08:18:29

标签: ruby arrays

我有一个语言字符串,定义为:en,fr,nl_nl。我需要返回以nl开头的第一个元素。我怎么能这样做?

我从languages.split(',')开始,但不知道在数组中搜索模式并返回第一个元素的最佳方法是什么。

2 个答案:

答案 0 :(得分:5)

这应该按照您的预期运作:

languages.split(',').detect { |s| s.start_with?('nl') }
# => "nl_nl"

答案 1 :(得分:5)

除非您需要数组,否则可以使用正则表达式来查找子字符串:

languages = 'en,fr,nl_nl'
languages[/\bnl[^,]*/] #=> "nl_nl"
languages[/\ben[^,]*/] #=> "en"