我使用github api收集了我的github repo的所有标签列表。假设我将它存储在名为'released_tags'的变量中。
例如:Data in 'released_tags' would be something similar to data displayed in https://api.github.com/repos/fastly/epoch/tags
我有一个数字0.3,我希望在这个数据的名称字段的值中找到它,并希望最后/最新包含/匹配的名称。
预期结果:该数据为0.3.5,0.3.4,0.3.3,0.3.2,0.3.1和0.3.0,含0.3。我正在尝试一种逻辑/简单的方法,通过名称字段为0.3进行搜索,我得到最新的,即在这种情况下逻辑的输出应该是0.3.5,因为这是最新的/最高的数字。如果名称字段只有0.3或0.3.0,则输出应为0.3或0.3.0
编辑:我能够找到解决方案,但是有没有简单/简单的方法呢?这是我的解决方案:
tag_names = Array.new
released_tags.each do |tag|
if tag['name'].include? '0.3'
tag_names << tag['name']
end
end
p tag_names.first
答案 0 :(得分:0)
鉴于您始终需要匹配的第一个结果,您可以使用find
:
released_tags.find { |tag| tag['name'] =~ /^0\.3/ }
或者,如果你不喜欢正则表达式:
released_tags.find { |tag| tag['name'].start_with?("0.3") }