如何修复这个从 Twitter URL 中提取推文 ID 的正则表达式?

ben*_*ben 1 ruby regex

我正在尝试编写一个正则表达式,它将从 Twitter URL 中提取推文 ID。

我有这个,当 Twitter 用户名中有一个数字时它可以工作:

'.*?\\d+.*?(\\d+)'

ruby-1.9.2-p0 > Regexp.new('.*?\\d+.*?(\\d+)',Regexp::IGNORECASE).match('https://twitter.com/#!/sportsguy33/status/41257488166686720')[1]
 => "41257488166686720" 
ruby-1.9.2-p0 > Regexp.new('.*?\\d+.*?(\\d+)',Regexp::IGNORECASE).match('http://twitter.com/#!/dailythunder/status/41382006113841153')[1]
 => "3" 
Run Code Online (Sandbox Code Playgroud)

还有这个,当 Twitter 用户名中没有数字时有效

'.*?(\\d+)'

ruby-1.9.2-p0 > Regexp.new('.*?(\\d+)',Regexp::IGNORECASE).match('https://twitter.com/#!/sportsguy33/status/41257488166686720')[1]
 => "33" 
ruby-1.9.2-p0 > Regexp.new('.*?(\\d+)',Regexp::IGNORECASE).match('http://twitter.com/#!/dailythunder/status/41382006113841153')[1]
 => "41382006113841153" 
Run Code Online (Sandbox Code Playgroud)

我怎样才能写出在任何一种情况下都可以使用的程序?

yoa*_*sky 6

如果推文 ID 是 url 的最后一部分,则可以使用:

'\/(\d+)$'
Run Code Online (Sandbox Code Playgroud)

$ 表示字符串的结尾