我有一个字符串
一些例子是:
https://www.facebook.com/permalink.php?story_fbid=53199604568&id=218700384
https://www.facebook.com/username_13/posts/101505775425651120
https://www.facebook.com/username/posts/101505775425699820
我需要一种从字符串中提取最长数字的方法。因此,对于上面的3个字符串,它将提取
53199604568
101505775425651120
101505775425699820
我该怎么做?
答案 0 :(得分:5)
#get the lines first
text = <<ENDTEXT
https://www.facebook.com/permalink.php?story_fbid=53199604568&id=218700384
https://www.facebook.com/username_13/posts/101505775425651120
https://www.facebook.com/username/posts/101505775425699820
ENDTEXT
lines = text.split("\n")
#this bit is the actual answer to your question
lines.collect{|line| line.scan(/\d+/).sort_by(&:length).last}
请注意,我在这里将数字作为字符串返回。您可以使用to_i
将它们转换为数字答案 1 :(得分:0)
解析列表(获取int数组),然后使用Max函数。 array.Max for syntax。
答案 2 :(得分:0)
s = "https://www.facebook.com/permalink.php?story_fbid=53199604568&id=218700384"
s.scan(/\d+/).max{|a,b| a.length <=> b.length}.to_i