给出一个亚马逊产品网址,可以是
http://amazon.com/gp/product/ASIN/*
http://amazon.com/*/dp/ASIN/*
http://amazon.com/dp/ASIN/*
如何从Ruby中的URL中删除ASIN编号?我不擅长写正则表达式。
答案 0 :(得分:5)
使用应该通过以下方式找到匹配:
scan(/https?:\/\/(?:www\.|)amazon\.com\/(?:gp\/product|[^\/]+\/dp|dp)\/([^\/]+)/)
答案 1 :(得分:2)
如果您要进行大量的URL解析,我建议您查看Addressable::URI gem。与使用正则表达式解析URL相比,它将使维护更容易。看一下它的Template模块,它就是为此而设计的。
查看主Addressable页面上的示例以获取更多信息。
您还可以使用Ruby的内置URI模块,使用path
获取路径,以及一个简单的字符串拆分和一些逻辑来查看哪个元素具有“dp
”然后获取数组中的下一个元素或“gp
”并获取第二个元素。