2013-02-12 58 views
1

我在ruby中使用URI模塊來匹配URL。Ruby URI - 匹配URL的一部分

require 'uri' 
url = URI"http://matchme.projects.foo.com" 

需要匹配url的matchme部分並將其放入一個變量中。 url的matchme部分將始終位於http://之後,並且位於下一個「.projects」之前。

我正在嘗試url.scheme它給了我「http」,如何從那裏繼續並匹配我的字符串。 比賽部分不斷變化。

+0

'URI.parse(url).host' – 2013-02-12 07:39:30

回答

2

可以使用正則表達式等

"http://matchme.projects.foo.com"[/http:\/\/([a-z0-9\-]*).*/,1] 
    => matchme 

如果請求對象可用,則

request.subdomains[0] 

會給你最深子域。

+0

儘管我最初認爲URI會很有用。我認爲通過使用正則表達式進行匹配會更有效。謝謝 – Supersonic 2013-02-12 07:54:47

+2

如果'matchme'可能是'ma.tch.me'則更好的正則表達式應該是'[/ http:\/\ /(。*)\。projects。* /,1]' – 2013-02-12 07:56:21

+0

很高興,它幫助: ) – 2013-02-12 07:58:25