我在URI中输了一个拼写错误,即结肠而不是句号。为什么URI :: regexp传递那种URI?例如
"http://www,my.com" =~ /^#{URI::regexp}$/
给你0意味着,据我所知,这是正确的。但是,如果我尝试解析这样的URI
URI.parse("http://www,my.com")
它引发了URI :: InvalidURIError
为什么呢?如何正确测试URI?
答案 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