Ruby URI :: regexp在网站名称中传递冒号

时间:2014-01-22 13:45:42

标签: ruby uri

我在URI中输了一个拼写错误,即结肠而不是句号。为什么URI :: regexp传递那种URI?例如

"http://www,my.com" =~ /^#{URI::regexp}$/

给你0意味着,据我所知,这是正确的。但是,如果我尝试解析这样的URI

URI.parse("http://www,my.com")

它引发了URI :: InvalidURIError

为什么呢?如何正确测试URI?

1 个答案:

答案 0 :(得分:1)

关于URI.regexp的官方文档:

  

返回与类URI字符串匹配的Regexp对象。正则表达式   此方法返回的对象包括任意数量的捕获   组(括号)。 永远不要依赖其号码

查看 Regex to match URL

否则,您可以使用URI.parse并处理相关的例外:

begin
  URI::parse("http://www,my.com") # => URI::InvalidURIError
rescue URI::InvalidURIError
  # handle exception
end