2010-11-27 72 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宝石更显干练。