我有这样的字符串:
https://www.facebook.com/username_with_number_14/posts/101505775425654414
https://www.facebook.com/username/posts/101505775425654466
我需要在Ruby中提取字符串末尾的数字。在第一个字符串中,它是第二个和最后一个数字,而在第二个字符串中,它是第一个,唯一的和最后一个数字。
目前我正在提取这样的数字:
int1 = Regexp.new('.*?(\\d+)',Regexp::IGNORECASE).match()[1]
但是当它应用于第一个字符串时,它会提取用户名的数字部分,而不是所需的数字。
我该怎么做才能在两个字符串上都能正常工作?
答案 0 :(得分:2)
text = <<ENDTEXT
https://www.facebook.com/username_with_number_14/posts/101505775425654414
https://www.facebook.com/username/posts/101505775425654466
ENDTEXT
p text.lines.map{|line| line.scan(/\d+/).last}
#=> ["101505775425654414", "101505775425654466"]
答案 1 :(得分:0)
答案 2 :(得分:0)
试试这个
int1 = Regexp.new('.*\\/(\\d+)$',Regexp::IGNORECASE).match()[1]
$
匹配字符串的结尾。所以我将最后一个/
的所有数字放到字符串的末尾,进入捕获组1。