1

给定一个亚马逊产品 URL,可以是

http://amazon.com/gp/product/ASIN/*
http://amazon.com/*/dp/ASIN/*
http://amazon.com/dp/ASIN/*

如何从 Ruby 中的 URL 中删除 ASIN 编号?我不擅长写正则表达式。

4

2 回答 2

5

使用应该通过以下方式找到匹配项:

scan(/https?:\/\/(?:www\.|)amazon\.com\/(?:gp\/product|[^\/]+\/dp|dp)\/([^\/]+)/)
于 2012-06-27T20:12:12.970 回答
2

如果您要进行大量 URL 解析,我建议您查看Addressable::URI gem。它比使用正则表达式解析 URL 更容易维护。也看看它的模板模块,它就是为此目的而设计的。

查看可寻址主页上的示例以获取更多信息。

您还可以使用 Ruby 的内置 URI 模块,使用 获取路径path,以及简单的字符串拆分和一些逻辑来查看哪个元素具有“ dp”,然后获取数组中的下一个元素或“ gp”并获取第二个以下元素。

于 2012-06-27T23:17:07.320 回答