假设我只希望用户输入以http://www.google.com开头的网址 这是什么正则表达式?
谢谢!
答案 0 :(得分:2)
只需将子字符串从0变为http://www.google.com
的长度即可。
答案 1 :(得分:1)
您可能需要考虑使用Ruby附带的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宝石就更有能力了。
答案 2 :(得分: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"
答案 3 :(得分:0)
Rails有一个方便的start_with?方法。如果它只是一个静态字符串,则不需要正则表达式。
url.start_with?("http://www.google.com")