正则表达式 Ruby中创建URL排列

2015-05-28 0 189
正则表达式 Ruby中创建URL排列
# return 4 urls, with and without trailing slash, with and without www
# useful for matching urls passed as params into some function,
# "does this url exist?"... need to make sure you check permutations
def url_permutations(url)
  url, params = url.split("?")
  # without_trailing_slash, with www
  a = url.gsub(/\/$/, "").gsub(/http(s)?:\/\/([^\/]+)/) do |match|
    protocol = "http#{$1.to_s}"
    domain = $2
    domain = "www.#{domain}" if domain.split(".").length < 3 # www.google.com == 3, google.com == 2
    "#{protocol}://#{domain}"
  end
  # with_trailing_slash, with www
  b = "#{a}/"
  # without_trailing_slash, without www
  c = a.gsub(/http(s)?:\/\/www\./, "http#{$1.to_s}://")
  # with_trailing_slash, without www
  d = "#{c}/"
  
  [a, b, c, d].map { |url| "#{url}?#{params}"}
end

]

遇见资源网 ruby 正则表达式 Ruby中创建URL排列 http://www.ox520.com/16361.html

下一篇: 距离换算器
常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务