我最近一直在尝试使用 Sinatra,并且在基于正则表达式的路由方面遇到了一些“问题”......例如,
get "/something/" do
status 400
end
匹配/something
但不匹配/something/
也不匹配/somethingelse
。然而,
get %r{/something/([0-9]{3})} do |number|
status number
end
匹配/something/201
但也/something/201/
和something/201-and-somethingelse
。也许我应该重写正则表达式来阅读%r{/something/([0-9]+)$}
,但包含美元符号对我来说没有意义,因为这种捕获应该是严格的,对吧?还是我错过了什么?