URL解析和匹配

时间:2013-10-11 14:44:01

标签: ruby regex parsing

如何使用下面的代码检查域名是否真实匹配。

对于该域名,url将返回true,但是对于此url = http://www.text-apple.com/uk/来说是有用的,这不是真正的匹配。

但在这种情况下url = http://itunes.apple.com"应该匹配,所以我需要添加一些内容,例如在域名之前有.然后匹配。

domain = "apple.com"
url = "http://www.apple.com/uk/"

def domain_is_URL?(url, domain)
 d = Regexp.escape(domain)
 URI.parse(url).host.match(d)
end

谢谢

2 个答案:

答案 0 :(得分:2)

您可以尝试比较主机组件:

domain_parts = domain.split('.')

URI.parse(url).host.split('.').last(domain_parts.length) == domain_parts.length

这会比较URI主机的最后N个部分,看它们是否相同。 [ 'text-apple', 'com' ]不等于[ 'apple', 'com' ]

答案 1 :(得分:0)

您可以尝试使用基数树构建域列表,然后根据基数树评估URL的一部分。