如何过滤掉与方案匹配的URI?

时间:2017-02-22 15:18:51

标签: ruby-on-rails ruby uri

这是Ruby on Rails应用程序的ActiveJob /

我正在使用Anemone网络抓取工具,并在www.example.com的主页上创建了所有URI的数组。我想过滤掉没有特定路径的那些。

因此,www.example.com/somepath应该被选中并保存,而www.example.com/someotherpath不应该被选中并保存。

问题是我无法过滤这些数组条目。我没有可以使用的正则表达式方法。

我在顶部要求'uri',但仍然会收到method does not exist错误。

2 个答案:

答案 0 :(得分:2)

使用数组的select和字符串的include来完成这项工作。

your_array = [ URI('www.example.com/somepath'),
               URI('www.example.com/someotherpath') ]
filter = 'somepath'

your_array.select { |t| t.to_s.include?(filter) }

=> [URI("www.example.com/somepath")]

答案 1 :(得分:0)

以下正则表达式适合您。

http:\/\/example\.com\/somepath($|\/.*)

编写一个ruby代码,检查字符串是否与此正则表达式匹配,然后就完成了。

有些事情:

def right_string(string)
  string.match(http:\/\/example\.com\/somepath($|\/.*)) ## this return true / false
end