Ruby regex:从字符串中提取url列表

时间:2011-08-16 13:45:29

标签: ruby regex

我有一串图片的网址,我需要将其转换为数组。

http://rubular.com/r/E2a5v2hYnJ

我该怎么做?

5 个答案:

答案 0 :(得分:5)

URI.extract(your_string)

如果你已经把它放在一个字符串中,这就是你所需要的。我不记得了,但你可能不得不首先把require 'uri'放在那里。一定要喜欢那个标准的图书馆!

以下是文档URI#extract

的链接

答案 1 :(得分:4)

Scan返回一个数组

myarray = mystring.scan(/regex/)

请参阅regular-expressions.info

答案 2 :(得分:1)

使用String#split(有关详细信息,请参阅文档)。

答案 3 :(得分:1)

最佳答案很大程度上取决于您期望的输入字符串。

如果您的测试字符串是准确的,那么我不会使用正则表达式,而是执行此操作(正如Marnen Laibow-Koser所建议的那样):

mystring.split('?v=3')

如果你的有用字符串之间真的没有持续的松散,那么正则表达式可能会更好。你的正则表达式是贪婪的。这将让你分道扬:

mystring.scan(/https?:\/\/[\w.-\/]*?\.(jpe?g|gif|png)/)

注意'?'在捕获服务器的部分中的'*'和URL的路径段之后,这使得正则表达式不贪婪。

问题在于,如果您的服务器名称或路径包含.jpg,.jpeg,.gif或.png中的任何一个,那么该实例中的结果将是错误的。

确定最佳内容需要有关输入字符串的更多信息。例如,您可以更好地模拟匹配所需网址之间的漏洞。

答案 4 :(得分:-1)

问题的部分原因在于您使用的是https而不是http ..如果其他答案对您不起作用,这会让您更接近您想要的内容:

http://rubular.com/r/cIjmjxIfz5