URL子串匹配正则表达式?

时间:2010-11-27 01:43:20

标签: ruby-on-rails regex

假设我只希望用户输入以http://www.google.com开头的网址 这是什么正则表达式?

谢谢!

4 个答案:

答案 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")