require 'uri'
[
'http://www.google.com http://www.stackoverflow.com',
'http://www.google.com and http://www.stackoverflow.com'
].each do |url|
print url
if url.split.all? { |u| !URI.extract(u).empty? }
puts " contains only URLs"
else
puts " doesn't contain only URLs"
end
end
在运行之后,它是:
http://www.google.com http://www.stackoverflow.com contains only URLs
http://www.google.com and http://www.stackoverflow.com doesn't contain only URLs
5条答案
按热度按时间0kjbasz61#
你可以使用这个正则表达式(只测试是否在http://开始的空格之间):
cigdeys32#
Ruby已经有了一个提取URL的方法,所以这是一个很好的起点,而不是重新发明一个工作轮:
在运行之后,它是:
这并不支持所有的the recognized URL schemes,但它是一个起点。您可以通过向
extract
传递一个scheme数组来指定所需的scheme。您可以使用以下命令获取IANA的永久列表:xv8emn3q3#
ijxebb2r4#
如果你真的想使用正则表达式,请尝试以下操作:
请删除“protocol”和“domain”前面的空格。
用空格分割字符串,并检查每个字符串是否与上面的正则表达式匹配。
希望有帮助!
i1icjdpr5#
这将检查任何URL和字符串应该是URL与单一的空格作为URL分隔符只
看看这个live demo
参考: