2010-11-27 69 views

回答

2

剛剛得到從0到http://www.google.com長度的子字符串,就完成了。

0

試試這個:

/\Ahttp:\/\/www\.google\.com(.*)?\Z/ 

ruby-1.9.2-p0 > "http://www.google.com" =~ /\Ahttp:\/\/www\.google\.com(.*)?\Z/ 
=> 0 
ruby-1.9.2-p0 > "http://www.google.com/foobar" =~ /\Ahttp:\/\/www\.google\.com(.*)?\Z/ 
=> 0 
ruby-1.9.2-p0 > $1 
=> "/foobar" 
0

Rails有一個便捷的start_with?方法。如果它只是一個靜態字符串,則不需要正則表達式。

url.start_with?("http://www.google.com")

1

而不是使用正則表達式,你可能要考慮使用隨紅寶石URI library。它試圖分解和構建URL,經過充分測試,並且比嘗試重新發明相同功能的錯誤更少。

require 'uri' 

url = URI.parse('http://www.google.com/path/to/page.html?a=1&b=2') 
url.scheme # => "http" 
url.host # => "www.google.com" 
url.path # => "/path/to/page.html" 
url.query # => "a=1&b=2" 

如果這還不夠好,Addressable::URI寶石更顯幹練。